diff options
| author | Jacob Walls <jacobtylerwalls@gmail.com> | 2025-09-17 09:19:25 -0400 |
|---|---|---|
| committer | nessita <124304+nessita@users.noreply.github.com> | 2025-09-17 13:28:58 -0300 |
| commit | b931156c207f661406635d49e0e29a51cacc1ab8 (patch) | |
| tree | 4d9adccade76009e4d7e6c9927ec08eb8790b0b6 /tests/tasks | |
| parent | 9334499f537e402ce5b92708209933045a8c5e7d (diff) | |
Refs #35859 -- Removed support for Task enqueuing on transaction commit.
This removes the ability to configure Task enqueueing via a setting,
since the proposed `ENQUEUE_ON_COMMIT` did not support multi-database
setups.
Thanks to Simon Charette for the report.
Follow-up to 4289966d1b8e848e5e460b7c782dac009d746b20.
Diffstat (limited to 'tests/tasks')
| -rw-r--r-- | tests/tasks/tasks.py | 10 | ||||
| -rw-r--r-- | tests/tasks/test_custom_backend.py | 1 | ||||
| -rw-r--r-- | tests/tasks/test_dummy_backend.py | 134 | ||||
| -rw-r--r-- | tests/tasks/test_immediate_backend.py | 94 | ||||
| -rw-r--r-- | tests/tasks/test_tasks.py | 2 |
5 files changed, 3 insertions, 238 deletions
diff --git a/tests/tasks/tasks.py b/tests/tasks/tasks.py index 3959660ab9..ede585dc5f 100644 --- a/tests/tasks/tasks.py +++ b/tests/tasks/tasks.py @@ -54,16 +54,6 @@ def exit_task(): exit(1) -@task(enqueue_on_commit=True) -def enqueue_on_commit_task(): - pass - - -@task(enqueue_on_commit=False) -def never_enqueue_on_commit_task(): - pass - - @task() def hang(): """ diff --git a/tests/tasks/test_custom_backend.py b/tests/tasks/test_custom_backend.py index 83a302a183..c8508d5d3b 100644 --- a/tests/tasks/test_custom_backend.py +++ b/tests/tasks/test_custom_backend.py @@ -27,7 +27,6 @@ class CustomBackendNoEnqueue(BaseTaskBackend): TASKS={ "default": { "BACKEND": f"{CustomBackend.__module__}.{CustomBackend.__qualname__}", - "ENQUEUE_ON_COMMIT": False, "OPTIONS": {"prefix": "PREFIX: "}, }, "no_enqueue": { diff --git a/tests/tasks/test_dummy_backend.py b/tests/tasks/test_dummy_backend.py index 27205f6ab3..18064adfba 100644 --- a/tests/tasks/test_dummy_backend.py +++ b/tests/tasks/test_dummy_backend.py @@ -2,17 +2,11 @@ from typing import cast from unittest import mock from django.db import transaction -from django.db.utils import ConnectionHandler from django.tasks import TaskResultStatus, default_task_backend, task_backends from django.tasks.backends.dummy import DummyBackend from django.tasks.base import Task from django.tasks.exceptions import InvalidTask, TaskResultDoesNotExist -from django.test import ( - SimpleTestCase, - TransactionTestCase, - override_settings, - skipIfDBFeature, -) +from django.test import SimpleTestCase, TransactionTestCase, override_settings from . import tasks as test_tasks @@ -22,7 +16,6 @@ from . import tasks as test_tasks "default": { "BACKEND": "django.tasks.backends.dummy.DummyBackend", "QUEUES": [], - "ENQUEUE_ON_COMMIT": False, } } ) @@ -119,14 +112,6 @@ class DummyBackendTestCase(SimpleTestCase): with self.assertRaises(TaskResultDoesNotExist): await default_task_backend.aget_result("123") - def test_enqueue_on_commit(self): - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task( - test_tasks.enqueue_on_commit_task - ), - True, - ) - def test_enqueue_logs(self): with self.assertLogs("django.tasks", level="DEBUG") as captured_logs: result = test_tasks.noop_task.enqueue() @@ -150,20 +135,6 @@ class DummyBackendTestCase(SimpleTestCase): errors = list(default_task_backend.check()) self.assertEqual(len(errors), 0, errors) - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.dummy.DummyBackend", - "ENQUEUE_ON_COMMIT": True, - } - } - ) - @mock.patch("django.tasks.backends.base.connections", ConnectionHandler({})) - def test_enqueue_on_commit_with_no_databases(self): - self.assertIn( - "tasks.E001", {error.id for error in default_task_backend.check()} - ) - def test_takes_context(self): result = test_tasks.get_task_id.enqueue() self.assertEqual(result.status, TaskResultStatus.READY) @@ -188,7 +159,6 @@ class DummyBackendTestCase(SimpleTestCase): "default": { "BACKEND": "django.tasks.backends.dummy.DummyBackend", "QUEUES": ["queue-1"], - "ENQUEUE_ON_COMMIT": False, } } ): @@ -207,7 +177,6 @@ class DummyBackendTestCase(SimpleTestCase): "default": { "BACKEND": "django.tasks.backends.dummy.DummyBackend", "QUEUES": ["queue-1"], - "ENQUEUE_ON_COMMIT": False, } } ): @@ -224,39 +193,10 @@ class DummyBackendTransactionTestCase(TransactionTestCase): TASKS={ "default": { "BACKEND": "django.tasks.backends.dummy.DummyBackend", - "ENQUEUE_ON_COMMIT": True, } } ) - def test_wait_until_transaction_commit(self): - self.assertIs(default_task_backend.enqueue_on_commit, True) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task(test_tasks.noop_task), - True, - ) - - with transaction.atomic(): - test_tasks.noop_task.enqueue() - - self.assertEqual(len(default_task_backend.results), 0) - - self.assertEqual(len(default_task_backend.results), 1) - - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.dummy.DummyBackend", - "ENQUEUE_ON_COMMIT": False, - } - } - ) - def test_doesnt_wait_until_transaction_commit(self): - self.assertIs(default_task_backend.enqueue_on_commit, False) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task(test_tasks.noop_task), - False, - ) - + def test_doesnt_wait_until_transaction_commit_by_default(self): with transaction.atomic(): result = test_tasks.noop_task.enqueue() @@ -265,73 +205,3 @@ class DummyBackendTransactionTestCase(TransactionTestCase): self.assertEqual(len(default_task_backend.results), 1) self.assertEqual(len(default_task_backend.results), 1) - - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.dummy.DummyBackend", - } - } - ) - def test_wait_until_transaction_by_default(self): - self.assertIs(default_task_backend.enqueue_on_commit, True) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task(test_tasks.noop_task), - True, - ) - - with transaction.atomic(): - result = test_tasks.noop_task.enqueue() - - self.assertIsNone(result.enqueued_at) - - self.assertEqual(len(default_task_backend.results), 0) - - self.assertEqual(len(default_task_backend.results), 1) - self.assertIsNone(result.enqueued_at) - result.refresh() - self.assertIsNotNone(result.enqueued_at) - - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.dummy.DummyBackend", - "ENQUEUE_ON_COMMIT": False, - } - } - ) - def test_task_specific_enqueue_on_commit(self): - self.assertIs(default_task_backend.enqueue_on_commit, False) - self.assertIs(test_tasks.enqueue_on_commit_task.enqueue_on_commit, True) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task( - test_tasks.enqueue_on_commit_task - ), - True, - ) - - with transaction.atomic(): - result = test_tasks.enqueue_on_commit_task.enqueue() - - self.assertIsNone(result.enqueued_at) - - self.assertEqual(len(default_task_backend.results), 0) - - self.assertEqual(len(default_task_backend.results), 1) - self.assertIsNone(result.enqueued_at) - result.refresh() - self.assertIsNotNone(result.enqueued_at) - - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.dummy.DummyBackend", - "ENQUEUE_ON_COMMIT": True, - } - } - ) - @skipIfDBFeature("supports_transactions") - def test_enqueue_on_commit_with_no_transactions(self): - self.assertIn( - "tasks.E002", {error.id for error in default_task_backend.check()} - ) diff --git a/tests/tasks/test_immediate_backend.py b/tests/tasks/test_immediate_backend.py index 01e2841aa7..356e9ab264 100644 --- a/tests/tasks/test_immediate_backend.py +++ b/tests/tasks/test_immediate_backend.py @@ -13,7 +13,6 @@ from . import tasks as test_tasks "default": { "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", "QUEUES": [], - "ENQUEUE_ON_COMMIT": False, } } ) @@ -203,14 +202,6 @@ class ImmediateBackendTestCase(SimpleTestCase): test_tasks.failing_task_value_error.using(run_after=timezone.now()) ) - def test_enqueue_on_commit(self): - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task( - test_tasks.enqueue_on_commit_task - ), - True, - ) - def test_enqueue_logs(self): with self.assertLogs("django.tasks", level="DEBUG") as captured_logs: result = test_tasks.noop_task.enqueue() @@ -256,7 +247,6 @@ class ImmediateBackendTestCase(SimpleTestCase): "default": { "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", "QUEUES": ["queue-1"], - "ENQUEUE_ON_COMMIT": False, } } ): @@ -275,7 +265,6 @@ class ImmediateBackendTestCase(SimpleTestCase): "default": { "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", "QUEUES": ["queue-1"], - "ENQUEUE_ON_COMMIT": False, } } ): @@ -292,43 +281,10 @@ class ImmediateBackendTransactionTestCase(TransactionTestCase): TASKS={ "default": { "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", - "ENQUEUE_ON_COMMIT": True, } } ) - def test_wait_until_transaction_commit(self): - self.assertIs(default_task_backend.enqueue_on_commit, True) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task(test_tasks.noop_task), - True, - ) - - with transaction.atomic(): - result = test_tasks.noop_task.enqueue() - - self.assertIsNone(result.enqueued_at) - self.assertEqual(result.attempts, 0) - self.assertEqual(result.status, TaskResultStatus.READY) - - self.assertEqual(result.status, TaskResultStatus.SUCCESSFUL) - self.assertIsNotNone(result.enqueued_at) - self.assertEqual(result.attempts, 1) - - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", - "ENQUEUE_ON_COMMIT": False, - } - } - ) - def test_doesnt_wait_until_transaction_commit(self): - self.assertIs(default_task_backend.enqueue_on_commit, False) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task(test_tasks.noop_task), - False, - ) - + def test_doesnt_wait_until_transaction_commit_by_default(self): with transaction.atomic(): result = test_tasks.noop_task.enqueue() @@ -337,51 +293,3 @@ class ImmediateBackendTransactionTestCase(TransactionTestCase): self.assertEqual(result.status, TaskResultStatus.SUCCESSFUL) self.assertEqual(result.status, TaskResultStatus.SUCCESSFUL) - - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", - } - } - ) - def test_wait_until_transaction_by_default(self): - self.assertIs(default_task_backend.enqueue_on_commit, True) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task(test_tasks.noop_task), - True, - ) - - with transaction.atomic(): - result = test_tasks.noop_task.enqueue() - - self.assertIsNone(result.enqueued_at) - self.assertEqual(result.status, TaskResultStatus.READY) - - self.assertEqual(result.status, TaskResultStatus.SUCCESSFUL) - - @override_settings( - TASKS={ - "default": { - "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", - "ENQUEUE_ON_COMMIT": False, - } - } - ) - def test_task_specific_enqueue_on_commit(self): - self.assertIs(default_task_backend.enqueue_on_commit, False) - self.assertIs(test_tasks.enqueue_on_commit_task.enqueue_on_commit, True) - self.assertIs( - default_task_backend._get_enqueue_on_commit_for_task( - test_tasks.enqueue_on_commit_task - ), - True, - ) - - with transaction.atomic(): - result = test_tasks.enqueue_on_commit_task.enqueue() - - self.assertIsNone(result.enqueued_at) - self.assertEqual(result.status, TaskResultStatus.READY) - - self.assertEqual(result.status, TaskResultStatus.SUCCESSFUL) diff --git a/tests/tasks/test_tasks.py b/tests/tasks/test_tasks.py index 2c11d9657d..14d47c4cf6 100644 --- a/tests/tasks/test_tasks.py +++ b/tests/tasks/test_tasks.py @@ -29,11 +29,9 @@ from . import tasks as test_tasks "default": { "BACKEND": "django.tasks.backends.dummy.DummyBackend", "QUEUES": ["default", "queue_1"], - "ENQUEUE_ON_COMMIT": False, }, "immediate": { "BACKEND": "django.tasks.backends.immediate.ImmediateBackend", - "ENQUEUE_ON_COMMIT": False, "QUEUES": [], }, "missing": {"BACKEND": "does.not.exist"}, |
