Skip to content

Commit 188889c

Browse files
committed
Test backends require backend without enqueue
1 parent cd848d8 commit 188889c

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

tests/tests/test_custom_backend.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,20 @@ def enqueue(self, *args: Any, **kwargs: Any) -> Any:
2121
logger.info(f"{self.prefix}Task enqueued.")
2222

2323

24+
class CustomBackendNoEnqueue(BaseTaskBackend):
25+
pass
26+
27+
2428
@override_settings(
2529
TASKS={
2630
"default": {
2731
"BACKEND": get_module_path(CustomBackend),
2832
"ENQUEUE_ON_COMMIT": False,
2933
"OPTIONS": {"prefix": "PREFIX: "},
3034
},
35+
"no_enqueue": {
36+
"BACKEND": get_module_path(CustomBackendNoEnqueue),
37+
},
3138
}
3239
)
3340
class CustomBackendTestCase(SimpleTestCase):
@@ -54,3 +61,10 @@ def test_options(self) -> None:
5461
self.assertEqual(len(captured_logs.output), 1)
5562
self.assertIn("PREFIX: Task enqueued", captured_logs.output[0])
5663

64+
def test_no_enqueue(self) -> None:
65+
with self.assertRaisesMessage(
66+
TypeError,
67+
"Can't instantiate abstract class CustomBackendNoEnqueue "
68+
"without an implementation for abstract method 'enqueue'",
69+
):
70+
test_tasks.noop_task.using(backend="no_enqueue")

0 commit comments

Comments
 (0)