mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-10-29 02:55:43 +00:00
Fixhancement: show better result for revoked / expired tasks
This commit is contained in:
2 files changed
+39
No files matched your search
@@ -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")
|
||||
|
||||
@@ -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."""
|
||||
|
||||
|
||||
Reference in new issue
Block a user