Skip to content

Commit 935410b

Browse files
SalmonModeblueyed
authored andcommitted
avoid exponential recursion by checking if already added
1 parent 034c795 commit 935410b

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/_pytest/fixtures.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,15 @@ def execute(self, request):
890890
for argname in self._dependee_fixture_argnames(request):
891891
fixturedef = request._get_active_fixturedef(argname)
892892
if argname != "request":
893-
fixturedef.addfinalizer(functools.partial(self.finish, request=request))
893+
for fin in fixturedef._finalizers:
894+
if "request" in getattr(fin, "keywords", {}):
895+
if self == fin.keywords["request"]._fixturedef:
896+
break
897+
else:
898+
fixturedef.addfinalizer(
899+
functools.partial(self.finish, request=request)
900+
)
901+
894902

895903
my_cache_key = self.cache_key(request)
896904
cached_result = getattr(self, "cached_result", None)

0 commit comments

Comments
 (0)