summaryrefslogtreecommitdiff
path: root/django/test
diff options
context:
space:
mode:
authorPetter Friberg <petter_friberg@hotmail.com>2022-01-04 23:06:46 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-01-06 06:38:17 +0100
commitbc174e6ea0ce676c5a7f467bda9739e6ef6b6186 (patch)
tree68ae81b376e74e74ce3e8736592f02b3f3ada5ec /django/test
parent806efe912b846c1fde250c9321d8334b7517cd56 (diff)
Fixed #33410 -- Fixed recursive capturing of callbacks by TestCase.captureOnCommitCallbacks().
Regression in d89f976bddb49fb168334960acc8979c3de991fa.
Diffstat (limited to 'django/test')
-rw-r--r--django/test/testcases.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/django/test/testcases.py b/django/test/testcases.py
index 685cbe2bd4..9759680f0f 100644
--- a/django/test/testcases.py
+++ b/django/test/testcases.py
@@ -1253,18 +1253,16 @@ class TestCase(TransactionTestCase):
try:
yield callbacks
finally:
- callback_count = len(connections[using].run_on_commit)
while True:
- run_on_commit = connections[using].run_on_commit[start_count:]
- callbacks[:] = [func for sids, func in run_on_commit]
- if execute:
- for callback in callbacks:
+ callback_count = len(connections[using].run_on_commit)
+ for _, callback in connections[using].run_on_commit[start_count:]:
+ callbacks.append(callback)
+ if execute:
callback()
if callback_count == len(connections[using].run_on_commit):
break
- start_count = callback_count - 1
- callback_count = len(connections[using].run_on_commit)
+ start_count = callback_count
class CheckCondition: