summaryrefslogtreecommitdiff
path: root/tests/tasks
diff options
context:
space:
mode:
authorJacob Walls <jacobtylerwalls@gmail.com>2025-09-17 09:19:25 -0400
committernessita <124304+nessita@users.noreply.github.com>2025-09-17 13:28:58 -0300
commitb931156c207f661406635d49e0e29a51cacc1ab8 (patch)
tree4d9adccade76009e4d7e6c9927ec08eb8790b0b6 /tests/tasks
parent9334499f537e402ce5b92708209933045a8c5e7d (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.py10
-rw-r--r--tests/tasks/test_custom_backend.py1
-rw-r--r--tests/tasks/test_dummy_backend.py134
-rw-r--r--tests/tasks/test_immediate_backend.py94
-rw-r--r--tests/tasks/test_tasks.py2
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"},