| 30 | |
| 31 | class TestMetafunc: |
| 32 | def Metafunc(self, func, config=None) -> python.Metafunc: |
| 33 | # The unit tests of this class check if things work correctly |
| 34 | # on the funcarg level, so we don't need a full blown |
| 35 | # initialization. |
| 36 | class FuncFixtureInfoMock: |
| 37 | name2fixturedefs: dict[str, list[fixtures.FixtureDef[object]]] = {} |
| 38 | |
| 39 | def __init__(self, names): |
| 40 | self.names_closure = names |
| 41 | |
| 42 | @dataclasses.dataclass |
| 43 | class FixtureManagerMock: |
| 44 | config: Any |
| 45 | |
| 46 | @dataclasses.dataclass |
| 47 | class SessionMock: |
| 48 | config: Any |
| 49 | _fixturemanager: FixtureManagerMock |
| 50 | nodeid: ClassVar = "" |
| 51 | |
| 52 | @dataclasses.dataclass |
| 53 | class DefinitionMock(python.FunctionDefinition): |
| 54 | _nodeid: str |
| 55 | obj: object |
| 56 | |
| 57 | names = getfuncargnames(func) |
| 58 | fixtureinfo: Any = FuncFixtureInfoMock(names) |
| 59 | definition: Any = DefinitionMock._create(obj=func, _nodeid="mock::nodeid") |
| 60 | definition._fixtureinfo = fixtureinfo |
| 61 | definition.session = SessionMock(config, FixtureManagerMock({})) |
| 62 | return python.Metafunc(definition, fixtureinfo, config, _ispytest=True) |
| 63 | |
| 64 | def test_no_funcargs(self) -> None: |
| 65 | def function(): |