Skip to content

Commit 8d2290d

Browse files
authored
Merge pull request #158 from kraken-tech/meshy/refactor-after-commit-runner
Extract settings into named variables for readability
2 parents 989254e + 8765ecb commit 8d2290d

2 files changed

Lines changed: 19 additions & 15 deletions

File tree

src/django_subatomic/db.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -252,26 +252,28 @@ def _execute_on_commit_callbacks_in_tests(using: str | None = None) -> Generator
252252
https://github.com/django/django/blob/stable/4.2.x/django/db/backends/base/base.py#L762-L779
253253
"""
254254
only_in_testcase_transaction = _innermost_atomic_block_wraps_testcase(using=using)
255+
if not only_in_testcase_transaction:
256+
yield
257+
return
255258

256-
if (
257-
getattr(
258-
settings, "SUBATOMIC_CATCH_UNHANDLED_AFTER_COMMIT_CALLBACKS_IN_TESTS", True
259-
)
260-
and only_in_testcase_transaction
261-
):
262-
connection = django_transaction.get_connection(using)
259+
raise_unhandled_callbacks = getattr(
260+
settings, "SUBATOMIC_CATCH_UNHANDLED_AFTER_COMMIT_CALLBACKS_IN_TESTS", True
261+
)
262+
# See Note [Running after-commit callbacks in tests]
263+
run_callbacks = getattr(
264+
settings, "SUBATOMIC_RUN_AFTER_COMMIT_CALLBACKS_IN_TESTS", True
265+
)
266+
267+
connection = django_transaction.get_connection(using)
268+
269+
if raise_unhandled_callbacks:
263270
callbacks = connection.run_on_commit
264271
if callbacks:
265272
raise _UnhandledCallbacks(tuple(callback for _, callback, _ in callbacks))
266273

267274
yield
268275

269-
if (
270-
# See Note [Running after-commit callbacks in tests]
271-
getattr(settings, "SUBATOMIC_RUN_AFTER_COMMIT_CALLBACKS_IN_TESTS", True)
272-
and only_in_testcase_transaction
273-
):
274-
connection = django_transaction.get_connection(using)
276+
if run_callbacks:
275277
callbacks = connection.run_on_commit
276278
connection.run_on_commit = []
277279
for _, callback, robust in callbacks:

src/django_subatomic/test.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ def part_of_a_transaction(using: str | None = None) -> Generator[None]:
4949
use [`transaction`][django_subatomic.db.transaction] instead.
5050
"""
5151
connection = transaction.get_connection(using)
52-
if getattr(
52+
raise_unhandled_callbacks = getattr(
5353
settings, "SUBATOMIC_CATCH_UNHANDLED_AFTER_COMMIT_CALLBACKS_IN_TESTS", True
54-
):
54+
)
55+
56+
if raise_unhandled_callbacks:
5557
callbacks = connection.run_on_commit
5658
if callbacks:
5759
raise _UnhandledCallbacks(tuple(callback for _, callback, _ in callbacks))

0 commit comments

Comments
 (0)