From a418a8d6e979798c104193c8a919c78e64abf345 Mon Sep 17 00:00:00 2001 From: Jake Howard Date: Thu, 21 Nov 2024 13:31:29 +0000 Subject: [PATCH] Rename "Complete" tasks to "Succeeded" "Complete" could imply it completed unsuccessfully --- django/tasks/backends/immediate.py | 2 +- django/tasks/task.py | 6 +++--- docs/ref/tasks.txt | 4 ++-- docs/topics/tasks.txt | 4 ++-- tests/tasks/test_dummy_backend.py | 8 ++++---- tests/tasks/test_immediate_backend.py | 18 +++++++++--------- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/django/tasks/backends/immediate.py b/django/tasks/backends/immediate.py index ca5f32478b..00f842c9c9 100644 --- a/django/tasks/backends/immediate.py +++ b/django/tasks/backends/immediate.py @@ -57,7 +57,7 @@ class ImmediateBackend(BaseTaskBackend): task_finished.send(type(self), task_result=task_result) else: object.__setattr__(task_result, "finished_at", timezone.now()) - object.__setattr__(task_result, "status", ResultStatus.COMPLETE) + object.__setattr__(task_result, "status", ResultStatus.SUCCEEDED) task_finished.send(type(self), task_result=task_result) diff --git a/django/tasks/task.py b/django/tasks/task.py index 006045858b..eb1eec42cb 100644 --- a/django/tasks/task.py +++ b/django/tasks/task.py @@ -32,7 +32,7 @@ class ResultStatus(TextChoices): NEW = ("NEW", _("New")) RUNNING = ("RUNNING", _("Running")) FAILED = ("FAILED", _("Failed")) - COMPLETE = ("COMPLETE", _("Complete")) + SUCCEEDED = ("SUCCEEDED", _("Succeeded")) @dataclass(frozen=True) @@ -237,13 +237,13 @@ class TaskResult: """ Get the return value of the task. - If the task didn't complete successfully, an exception is raised. + If the task didn't succeed, an exception is raised. This is to distinguish against the task returning None. """ if self.status == ResultStatus.FAILED: raise ValueError("Task failed") - elif self.status != ResultStatus.COMPLETE: + elif self.status != ResultStatus.SUCCEEDED: raise ValueError("Task has not finished yet") return self._return_value diff --git a/docs/ref/tasks.txt b/docs/ref/tasks.txt index afdb6b1936..55af7c61ba 100644 --- a/docs/ref/tasks.txt +++ b/docs/ref/tasks.txt @@ -136,7 +136,7 @@ Task results The :class:`Task` raised an exception during execution, or was unable to start. -.. attribute:: ResultStatus.COMPLETE +.. attribute:: ResultStatus.SUCCEEDED The :class:`Task` has finished executing successfully. @@ -175,7 +175,7 @@ Attributes of ``TaskResult`` cannot be modified. .. attribute:: TaskResult.finished_at - The time when the task finished execution, whether it failed or completed. + The time when the task finished execution, whether it failed or succeeded. .. attribute:: TaskResult.backend diff --git a/docs/topics/tasks.txt b/docs/topics/tasks.txt index 6c84d2aa33..24cbf6b4df 100644 --- a/docs/topics/tasks.txt +++ b/docs/topics/tasks.txt @@ -307,7 +307,7 @@ To refresh the values, call the :meth:`django.tasks.TaskResult.refresh` method:: result.refresh() # or await result.arefresh() - result.status # COMPLETE + result.status # SUCCEEDED Return values ------------- @@ -322,7 +322,7 @@ If the task has not finished executing, or has failed, :exc:`ValueError` is rais Exceptions ---------- -If the task doesn't complete successfully, and instead raises an exception, either +If the task doesn't succeed, and instead raises an exception, either as part of the task or as part of running it, the exception instance is saved to the :attr:`django.tasks.TaskResult.exception` attribute:: diff --git a/tests/tasks/test_dummy_backend.py b/tests/tasks/test_dummy_backend.py index 71a9bcb17a..bd35dff0d0 100644 --- a/tests/tasks/test_dummy_backend.py +++ b/tests/tasks/test_dummy_backend.py @@ -78,11 +78,11 @@ class DummyBackendTestCase(SimpleTestCase): ) enqueued_result = default_task_backend.results[0] - object.__setattr__(enqueued_result, "status", ResultStatus.COMPLETE) + object.__setattr__(enqueued_result, "status", ResultStatus.SUCCEEDED) self.assertEqual(result.status, ResultStatus.NEW) result.refresh() - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) async def test_refresh_result_async(self): result = await default_task_backend.aenqueue( @@ -90,11 +90,11 @@ class DummyBackendTestCase(SimpleTestCase): ) enqueued_result = default_task_backend.results[0] - object.__setattr__(enqueued_result, "status", ResultStatus.COMPLETE) + object.__setattr__(enqueued_result, "status", ResultStatus.SUCCEEDED) self.assertEqual(result.status, ResultStatus.NEW) await result.arefresh() - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) async def test_get_missing_result(self): with self.assertRaises(ResultDoesNotExist): diff --git a/tests/tasks/test_immediate_backend.py b/tests/tasks/test_immediate_backend.py index 02b84d16b7..baf68c9c34 100644 --- a/tests/tasks/test_immediate_backend.py +++ b/tests/tasks/test_immediate_backend.py @@ -29,7 +29,7 @@ class ImmediateBackendTestCase(SimpleTestCase): with self.subTest(task): result = cast(Task, task).enqueue(1, two=3) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) self.assertIsNotNone(result.started_at) self.assertIsNotNone(result.finished_at) self.assertGreaterEqual(result.started_at, result.enqueued_at) @@ -44,7 +44,7 @@ class ImmediateBackendTestCase(SimpleTestCase): with self.subTest(task): result = await cast(Task, task).aenqueue() - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) self.assertIsNotNone(result.started_at) self.assertIsNotNone(result.finished_at) self.assertGreaterEqual(result.started_at, result.enqueued_at) @@ -125,7 +125,7 @@ class ImmediateBackendTestCase(SimpleTestCase): test_tasks.calculate_meaning_of_life, [], {} ) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) self.assertEqual(result.return_value, 42) async def test_result_async(self): @@ -133,7 +133,7 @@ class ImmediateBackendTestCase(SimpleTestCase): test_tasks.calculate_meaning_of_life, [], {} ) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) self.assertEqual(result.return_value, 42) async def test_cannot_get_result(self): @@ -213,7 +213,7 @@ class ImmediateBackendTransactionTestCase(TransactionTestCase): self.assertIsNone(result.enqueued_at) self.assertEqual(result.status, ResultStatus.NEW) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) self.assertIsNotNone(result.enqueued_at) @override_settings( @@ -235,9 +235,9 @@ class ImmediateBackendTransactionTestCase(TransactionTestCase): self.assertIsNotNone(result.enqueued_at) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) @override_settings( TASKS={ @@ -258,7 +258,7 @@ class ImmediateBackendTransactionTestCase(TransactionTestCase): self.assertIsNone(result.enqueued_at) self.assertEqual(result.status, ResultStatus.NEW) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED) @override_settings( TASKS={ @@ -283,4 +283,4 @@ class ImmediateBackendTransactionTestCase(TransactionTestCase): self.assertIsNone(result.enqueued_at) self.assertEqual(result.status, ResultStatus.NEW) - self.assertEqual(result.status, ResultStatus.COMPLETE) + self.assertEqual(result.status, ResultStatus.SUCCEEDED)