11import json
2+ from typing import cast
23
34from django .test import SimpleTestCase , override_settings
45from django .urls import reverse
56from django .utils import timezone
67
7- from django_tasks import ResultStatus , default_task_backend , tasks
8+ from django_tasks import ResultStatus , Task , default_task_backend , tasks
89from django_tasks .backends .immediate import ImmediateBackend
910from django_tasks .exceptions import InvalidTaskError
1011from tests import tasks as test_tasks
@@ -21,13 +22,13 @@ def test_using_correct_backend(self) -> None:
2122 def test_enqueue_task (self ) -> None :
2223 for task in [test_tasks .noop_task , test_tasks .noop_task_async ]:
2324 with self .subTest (task ):
24- result = default_task_backend . enqueue ( task , (1 ,), { " two" : 3 } )
25+ result = cast ( Task , task ). enqueue (1 , two = 3 )
2526
2627 self .assertEqual (result .status , ResultStatus .COMPLETE )
2728 self .assertIsNotNone (result .started_at )
2829 self .assertIsNotNone (result .finished_at )
29- self .assertGreaterEqual (result .started_at , result .enqueued_at )
30- self .assertGreaterEqual (result .finished_at , result .started_at )
30+ self .assertGreaterEqual (result .started_at , result .enqueued_at ) # type:ignore[arg-type]
31+ self .assertGreaterEqual (result .finished_at , result .started_at ) # type:ignore[arg-type, misc]
3132 self .assertIsNone (result .result )
3233 self .assertEqual (result .task , task )
3334 self .assertEqual (result .args , [1 ])
@@ -36,13 +37,13 @@ def test_enqueue_task(self) -> None:
3637 async def test_enqueue_task_async (self ) -> None :
3738 for task in [test_tasks .noop_task , test_tasks .noop_task_async ]:
3839 with self .subTest (task ):
39- result = await default_task_backend . aenqueue ( task , (), {} )
40+ result = await cast ( Task , task ). aenqueue ( )
4041
4142 self .assertEqual (result .status , ResultStatus .COMPLETE )
4243 self .assertIsNotNone (result .started_at )
4344 self .assertIsNotNone (result .finished_at )
44- self .assertGreaterEqual (result .started_at , result .enqueued_at )
45- self .assertGreaterEqual (result .finished_at , result .started_at )
45+ self .assertGreaterEqual (result .started_at , result .enqueued_at ) # type:ignore[arg-type]
46+ self .assertGreaterEqual (result .finished_at , result .started_at ) # type:ignore[arg-type, misc]
4647 self .assertIsNone (result .result )
4748 self .assertIsNone (result .get_result ())
4849 self .assertEqual (result .task , task )
@@ -66,7 +67,7 @@ def test_catches_exception(self) -> None:
6667 with self .subTest (task ), self .assertLogs (
6768 "django_tasks.backends.immediate" , level = "ERROR"
6869 ) as captured_logs :
69- result = default_task_backend .enqueue (task , [], {} )
70+ result = task .enqueue ()
7071
7172 # assert logging
7273 self .assertEqual (len (captured_logs .output ), 1 )
@@ -76,11 +77,12 @@ def test_catches_exception(self) -> None:
7677 self .assertEqual (result .status , ResultStatus .FAILED )
7778 self .assertIsNotNone (result .started_at )
7879 self .assertIsNotNone (result .finished_at )
79- self .assertGreaterEqual (result .started_at , result .enqueued_at )
80- self .assertGreaterEqual (result .finished_at , result .started_at )
80+ self .assertGreaterEqual (result .started_at , result .enqueued_at ) # type:ignore[arg-type]
81+ self .assertGreaterEqual (result .finished_at , result .started_at ) # type:ignore[arg-type, misc]
8182 self .assertIsInstance (result .result , exception )
8283 self .assertTrue (
83- result .traceback .endswith (f"{ exception .__name__ } : { message } \n " )
84+ result .traceback
85+ and result .traceback .endswith (f"{ exception .__name__ } : { message } \n " )
8486 )
8587 self .assertIsNone (result .get_result ())
8688 self .assertEqual (result .task , task )
@@ -104,13 +106,13 @@ def test_throws_keyboard_interrupt(self) -> None:
104106
105107 def test_complex_exception (self ) -> None :
106108 with self .assertLogs ("django_tasks.backends.immediate" , level = "ERROR" ):
107- result = default_task_backend . enqueue ( test_tasks .complex_exception , [], {} )
109+ result = test_tasks .complex_exception . enqueue ( )
108110
109111 self .assertEqual (result .status , ResultStatus .FAILED )
110112 self .assertIsNotNone (result .started_at )
111113 self .assertIsNotNone (result .finished_at )
112- self .assertGreaterEqual (result .started_at , result .enqueued_at )
113- self .assertGreaterEqual (result .finished_at , result .started_at )
114+ self .assertGreaterEqual (result .started_at , result .enqueued_at ) # type:ignore[arg-type]
115+ self .assertGreaterEqual (result .finished_at , result .started_at ) # type:ignore[arg-type,misc]
114116
115117 self .assertIsNone (result .result )
116118 self .assertIsNone (result .traceback )
@@ -147,7 +149,7 @@ async def test_cannot_get_result(self) -> None:
147149 NotImplementedError ,
148150 "This backend does not support retrieving or refreshing results." ,
149151 ):
150- await default_task_backend .get_result (123 )
152+ await default_task_backend .aget_result (123 ) # type:ignore[arg-type]
151153
152154 async def test_cannot_refresh_result (self ) -> None :
153155 result = default_task_backend .enqueue (
0 commit comments