Skip to content

Commit addbd31

Browse files
committed
nose,fixtures: use the public item API for adding finalizers
1 parent 42d5545 commit addbd31

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

src/_pytest/fixtures.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -543,10 +543,8 @@ def addfinalizer(self, finalizer: Callable[[], object]) -> None:
543543
self._addfinalizer(finalizer, scope=self.scope)
544544

545545
def _addfinalizer(self, finalizer: Callable[[], object], scope) -> None:
546-
colitem = self._getscopeitem(scope)
547-
self._pyfuncitem.session._setupstate.addfinalizer(
548-
finalizer=finalizer, colitem=colitem
549-
)
546+
item = self._getscopeitem(scope)
547+
item.addfinalizer(finalizer)
550548

551549
def applymarker(self, marker: Union[str, MarkDecorator]) -> None:
552550
"""Apply a marker to a single test function invocation.
@@ -694,9 +692,7 @@ def _schedule_finalizers(
694692
self, fixturedef: "FixtureDef[object]", subrequest: "SubRequest"
695693
) -> None:
696694
# If fixture function failed it might have registered finalizers.
697-
self.session._setupstate.addfinalizer(
698-
functools.partial(fixturedef.finish, request=subrequest), subrequest.node
699-
)
695+
subrequest.node.addfinalizer(lambda: fixturedef.finish(request=subrequest))
700696

701697
def _check_scope(
702698
self,

src/_pytest/nose.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def pytest_runtest_setup(item) -> None:
1313
# Call module level setup if there is no object level one.
1414
call_optional(item.parent.obj, "setup")
1515
# XXX This implies we only call teardown when setup worked.
16-
item.session._setupstate.addfinalizer((lambda: teardown_nose(item)), item)
16+
item.addfinalizer(lambda: teardown_nose(item))
1717

1818

1919
def teardown_nose(item) -> None:

0 commit comments

Comments
 (0)