summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRan Benita <ran@unusedvar.com>2021-01-14 16:51:18 +0200
committerRan Benita <ran@unusedvar.com>2021-01-14 16:53:07 +0200
commitaddbd3161e37edffebb2c0f6527da49b0515d1a1 (patch)
tree79d69de50129d5cc0d1e18ccd63231e2df81ca49 /src
parent42d5545f42f7f11345913efedf852cbea3753e58 (diff)
downloadpytest-addbd3161e37edffebb2c0f6527da49b0515d1a1.tar.gz
nose,fixtures: use the public item API for adding finalizers
Diffstat (limited to 'src')
-rw-r--r--src/_pytest/fixtures.py10
-rw-r--r--src/_pytest/nose.py2
2 files changed, 4 insertions, 8 deletions
diff --git a/src/_pytest/fixtures.py b/src/_pytest/fixtures.py
index 5bdee3096..43a40a864 100644
--- a/src/_pytest/fixtures.py
+++ b/src/_pytest/fixtures.py
@@ -543,10 +543,8 @@ class FixtureRequest:
self._addfinalizer(finalizer, scope=self.scope)
def _addfinalizer(self, finalizer: Callable[[], object], scope) -> None:
- colitem = self._getscopeitem(scope)
- self._pyfuncitem.session._setupstate.addfinalizer(
- finalizer=finalizer, colitem=colitem
- )
+ item = self._getscopeitem(scope)
+ item.addfinalizer(finalizer)
def applymarker(self, marker: Union[str, MarkDecorator]) -> None:
"""Apply a marker to a single test function invocation.
@@ -694,9 +692,7 @@ class FixtureRequest:
self, fixturedef: "FixtureDef[object]", subrequest: "SubRequest"
) -> None:
# If fixture function failed it might have registered finalizers.
- self.session._setupstate.addfinalizer(
- functools.partial(fixturedef.finish, request=subrequest), subrequest.node
- )
+ subrequest.node.addfinalizer(lambda: fixturedef.finish(request=subrequest))
def _check_scope(
self,
diff --git a/src/_pytest/nose.py b/src/_pytest/nose.py
index de91af85a..5bba030a5 100644
--- a/src/_pytest/nose.py
+++ b/src/_pytest/nose.py
@@ -13,7 +13,7 @@ def pytest_runtest_setup(item) -> None:
# Call module level setup if there is no object level one.
call_optional(item.parent.obj, "setup")
# XXX This implies we only call teardown when setup worked.
- item.session._setupstate.addfinalizer((lambda: teardown_nose(item)), item)
+ item.addfinalizer(lambda: teardown_nose(item))
def teardown_nose(item) -> None: