Skip to content

Commit 22d51b3

Browse files
committed
Ensure return value is correctly exposed using database backend
It seems the return value was always `None`, regardless of if the task actually returned a value. Fixes #131
1 parent f3456b3 commit 22d51b3

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

django_tasks/backends/database/models.py

+1
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ def task_result(self) -> "TaskResult[T]":
167167

168168
object.__setattr__(task_result, "_exception_class", exception_class)
169169
object.__setattr__(task_result, "_traceback", self.traceback or None)
170+
object.__setattr__(task_result, "_return_value", self.return_value)
170171

171172
return task_result
172173

tests/tests/test_database_backend.py

+4
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ def test_refresh_result(self) -> None:
127127
status=ResultStatus.SUCCEEDED,
128128
started_at=timezone.now(),
129129
finished_at=timezone.now(),
130+
return_value=42,
130131
)
131132

132133
self.assertEqual(result.status, ResultStatus.NEW)
@@ -139,6 +140,7 @@ def test_refresh_result(self) -> None:
139140
self.assertIsNotNone(result.finished_at)
140141
self.assertEqual(result.status, ResultStatus.SUCCEEDED)
141142
self.assertTrue(result.is_finished)
143+
self.assertEqual(result.return_value, 42)
142144

143145
async def test_refresh_result_async(self) -> None:
144146
result = await default_task_backend.aenqueue(
@@ -149,6 +151,7 @@ async def test_refresh_result_async(self) -> None:
149151
status=ResultStatus.SUCCEEDED,
150152
started_at=timezone.now(),
151153
finished_at=timezone.now(),
154+
return_value=42,
152155
)
153156

154157
self.assertEqual(result.status, ResultStatus.NEW)
@@ -160,6 +163,7 @@ async def test_refresh_result_async(self) -> None:
160163
self.assertIsNotNone(result.finished_at)
161164
self.assertEqual(result.status, ResultStatus.SUCCEEDED)
162165
self.assertTrue(result.is_finished)
166+
self.assertEqual(result.return_value, 42)
163167

164168
def test_get_missing_result(self) -> None:
165169
with self.assertRaises(ResultDoesNotExist):

0 commit comments

Comments
 (0)