From 5a0c9aca639596b9d0bf5d909462b0435afda244 Mon Sep 17 00:00:00 2001 From: Ronny Pfannschmidt Date: Thu, 24 May 2018 10:29:42 +0200 Subject: [PATCH] correctly instantiate fixtureinfo for unittest tests, fixes #3498 --- _pytest/fixtures.py | 2 +- _pytest/python.py | 2 +- _pytest/unittest.py | 3 ++- changelog/3498.bugfix | 1 + 4 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 changelog/3498.bugfix diff --git a/_pytest/fixtures.py b/_pytest/fixtures.py index 7b109ec11..6617c24a2 100644 --- a/_pytest/fixtures.py +++ b/_pytest/fixtures.py @@ -984,7 +984,7 @@ class FixtureManager(object): session.config.pluginmanager.register(self, "funcmanage") def getfixtureinfo(self, node, func, cls, funcargs=True): - if funcargs and not hasattr(node, "nofuncargs"): + if funcargs and not getattr(node, "nofuncargs", False): argnames = getfuncargnames(func, cls=cls) else: argnames = () diff --git a/_pytest/python.py b/_pytest/python.py index 8bcb051a2..2b37067d5 100644 --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1155,7 +1155,7 @@ class Function(FunctionMixin, nodes.Item, fixtures.FuncargnamesCompatAttr): if fixtureinfo is None: fixtureinfo = self.session._fixturemanager.getfixtureinfo( - self.parent, self.obj, self.cls, + self, self.obj, self.cls, funcargs=not self._isyieldedfunction()) self._fixtureinfo = fixtureinfo self.fixturenames = fixtureinfo.names_closure diff --git a/_pytest/unittest.py b/_pytest/unittest.py index 3ddb39495..17c94bca4 100644 --- a/_pytest/unittest.py +++ b/_pytest/unittest.py @@ -54,7 +54,7 @@ class UnitTestCase(Class): continue funcobj = getattr(x, 'im_func', x) transfer_markers(funcobj, cls, module) - yield TestCaseFunction(name, parent=self) + yield TestCaseFunction(name, parent=self, callobj=funcobj) foundsomething = True if not foundsomething: @@ -66,6 +66,7 @@ class UnitTestCase(Class): class TestCaseFunction(Function): + nofuncargs = True _excinfo = None def setup(self): diff --git a/changelog/3498.bugfix b/changelog/3498.bugfix new file mode 100644 index 000000000..7260879c4 --- /dev/null +++ b/changelog/3498.bugfix @@ -0,0 +1 @@ +correctly instantiate fixtureinfo for unittest tests. \ No newline at end of file