diff options
| author | Petter Friberg <petter_friberg@hotmail.com> | 2022-01-04 23:06:46 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-01-06 06:38:17 +0100 |
| commit | bc174e6ea0ce676c5a7f467bda9739e6ef6b6186 (patch) | |
| tree | 68ae81b376e74e74ce3e8736592f02b3f3ada5ec /django/test | |
| parent | 806efe912b846c1fde250c9321d8334b7517cd56 (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.py | 12 |
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: |
