Fixhancement: show better result for revoked / expired tasks

This commit is contained in:
shamoon committed 2026-10-27 21:05:33 -07:00
1 parent fed9e8d783
commit 5d0197205f
2 files changed
+39

No files matched your search

+9
View File
@@ -1384,6 +1384,15 @@ def task_revoked_handler(
PaperlessTask.objects.filter(task_id=task_id).update(
status=PaperlessTask.Status.REVOKED,
date_done=timezone.now(),
result_data={
"reason": (
"Task expired before execution. Check worker logs for details."
if expired
else "Task terminated during execution. Check worker logs for details."
if terminated
else "Task revoked before completion. Check worker logs for details."
),
},
)
except Exception: # pragma: no cover
logger.exception("Updating PaperlessTask on revocation failed")
+30
View File
@@ -429,6 +429,36 @@ class TestTaskRevokedHandler:
assert task.status == PaperlessTask.Status.REVOKED
assert task.date_done is not None
@pytest.mark.parametrize(
("expired", "terminated", "reason"),
[
(True, False, "Task expired before execution."),
(False, True, "Task terminated during execution."),
(False, False, "Task revoked before completion."),
],
)
def test_records_revocation_details(
self,
mocker,
expired,
terminated,
reason,
) -> None:
task = PaperlessTaskFactory(status=PaperlessTask.Status.PENDING)
request = mocker.MagicMock()
request.id = task.task_id
task_revoked_handler(
request=request,
expired=expired,
terminated=terminated,
)
task.refresh_from_db()
assert task.result_data == {
"reason": f"{reason} Check worker logs for details.",
}
def test_ignores_none_request(self) -> None:
"""task_revoked_handler must not raise when request is None."""