Skip to content

Commit 83349d7

Browse files
committed
avoid exponential recursion by checking if already added
1 parent bab4dd0 commit 83349d7

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
@@ -889,7 +889,15 @@ def execute(self, request):
889889
for argname in self._dependee_fixture_argnames(request):
890890
fixturedef = request._get_active_fixturedef(argname)
891891
if argname != "request":
892-
fixturedef.addfinalizer(functools.partial(self.finish, request=request))
892+
for fin in fixturedef._finalizers:
893+
if "request" in getattr(fin, "keywords", {}):
894+
if self == fin.keywords["request"]._fixturedef:
895+
break
896+
else:
897+
fixturedef.addfinalizer(
898+
functools.partial(self.finish, request=request)
899+
)
900+
893901

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

0 commit comments

Comments
 (0)