mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-28 18:24:38 -05:00
Switches task serialization over to pickle format
This commit is contained in:
@@ -3043,16 +3043,6 @@ class TestTasks(APITestCase):
|
||||
task_file_name="test.pdf",
|
||||
task_name="documents.tasks.some_task",
|
||||
status=celery.states.SUCCESS,
|
||||
task_args=("/tmp/paperless/paperless-upload-5iq7skzc",),
|
||||
task_kwargs={
|
||||
"override_filename": "test.pdf",
|
||||
"override_title": None,
|
||||
"override_correspondent_id": None,
|
||||
"override_document_type_id": None,
|
||||
"override_tag_ids": None,
|
||||
"task_id": "466e8fe7-7193-4698-9fff-72f0340e2082",
|
||||
"override_created": None,
|
||||
},
|
||||
)
|
||||
|
||||
response = self.client.get(self.ENDPOINT)
|
||||
@@ -3079,8 +3069,6 @@ class TestTasks(APITestCase):
|
||||
task_file_name="anothertest.pdf",
|
||||
task_name="documents.tasks.some_task",
|
||||
status=celery.states.SUCCESS,
|
||||
task_args=("/consume/anothertest.pdf",),
|
||||
task_kwargs={"override_tag_ids": None},
|
||||
)
|
||||
|
||||
response = self.client.get(self.ENDPOINT)
|
||||
|
@@ -28,6 +28,14 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase):
|
||||
"ignore_result": False,
|
||||
}
|
||||
|
||||
BODY_CONSUME = (
|
||||
# args
|
||||
("/consume/hello-999.pdf",),
|
||||
# kwargs
|
||||
{"override_tag_ids": None},
|
||||
{"callbacks": None, "errbacks": None, "chain": None, "chord": None},
|
||||
)
|
||||
|
||||
HEADERS_WEB_UI = {
|
||||
"lang": "py",
|
||||
"task": "documents.tasks.consume_file",
|
||||
@@ -47,64 +55,90 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase):
|
||||
"ignore_result": False,
|
||||
}
|
||||
|
||||
def util_call_before_task_publish_handler(self, headers_to_use):
|
||||
BODY_WEB_UI = (
|
||||
# args
|
||||
("/tmp/paperless/paperless-upload-st9lmbvx",),
|
||||
# kwargs
|
||||
{
|
||||
"override_filename": "statement.pdf",
|
||||
"override_title": None,
|
||||
"override_correspondent_id": None,
|
||||
"override_document_type_id": None,
|
||||
"override_tag_ids": None,
|
||||
"task_id": "f5622ca9-3707-4ed0-b418-9680b912572f",
|
||||
"override_created": None,
|
||||
},
|
||||
{"callbacks": None, "errbacks": None, "chain": None, "chord": None},
|
||||
)
|
||||
|
||||
def util_call_before_task_publish_handler(self, headers_to_use, body_to_use):
|
||||
"""
|
||||
Simple utility to call the pre-run handle and ensure it created a single task
|
||||
instance
|
||||
"""
|
||||
self.assertEqual(PaperlessTask.objects.all().count(), 0)
|
||||
|
||||
before_task_publish_handler(headers=headers_to_use)
|
||||
before_task_publish_handler(headers=headers_to_use, body=body_to_use)
|
||||
|
||||
self.assertEqual(PaperlessTask.objects.all().count(), 1)
|
||||
|
||||
def test_before_task_publish_handler_consume(self):
|
||||
"""
|
||||
GIVEN:
|
||||
- A celery task completed with an exception
|
||||
- A celery task is started via the consume folder
|
||||
WHEN:
|
||||
- API call is made to get tasks
|
||||
- Task before publish handler is called
|
||||
THEN:
|
||||
- The returned result is the exception info
|
||||
- The task is created and marked as pending
|
||||
"""
|
||||
self.util_call_before_task_publish_handler(headers_to_use=self.HEADERS_CONSUME)
|
||||
self.util_call_before_task_publish_handler(
|
||||
headers_to_use=self.HEADERS_CONSUME,
|
||||
body_to_use=self.BODY_CONSUME,
|
||||
)
|
||||
|
||||
task = PaperlessTask.objects.get()
|
||||
self.assertIsNotNone(task)
|
||||
self.assertEqual(self.HEADERS_CONSUME["id"], task.task_id)
|
||||
self.assertListEqual(["/consume/hello-999.pdf"], task.task_args)
|
||||
self.assertDictEqual({"override_tag_ids": None}, task.task_kwargs)
|
||||
self.assertEqual("hello-999.pdf", task.task_file_name)
|
||||
self.assertEqual("documents.tasks.consume_file", task.task_name)
|
||||
self.assertEqual(celery.states.PENDING, task.status)
|
||||
|
||||
def test_before_task_publish_handler_webui(self):
|
||||
|
||||
self.util_call_before_task_publish_handler(headers_to_use=self.HEADERS_WEB_UI)
|
||||
"""
|
||||
GIVEN:
|
||||
- A celery task is started via the web ui
|
||||
WHEN:
|
||||
- Task before publish handler is called
|
||||
THEN:
|
||||
- The task is created and marked as pending
|
||||
"""
|
||||
self.util_call_before_task_publish_handler(
|
||||
headers_to_use=self.HEADERS_WEB_UI,
|
||||
body_to_use=self.BODY_WEB_UI,
|
||||
)
|
||||
|
||||
task = PaperlessTask.objects.get()
|
||||
|
||||
self.assertIsNotNone(task)
|
||||
|
||||
self.assertEqual(self.HEADERS_WEB_UI["id"], task.task_id)
|
||||
self.assertListEqual(
|
||||
["/tmp/paperless/paperless-upload-st9lmbvx"],
|
||||
task.task_args,
|
||||
)
|
||||
self.assertDictEqual(
|
||||
{
|
||||
"override_filename": "statement.pdf",
|
||||
"override_title": None,
|
||||
"override_correspondent_id": None,
|
||||
"override_document_type_id": None,
|
||||
"override_tag_ids": None,
|
||||
"task_id": "f5622ca9-3707-4ed0-b418-9680b912572f",
|
||||
"override_created": None,
|
||||
},
|
||||
task.task_kwargs,
|
||||
)
|
||||
self.assertEqual("statement.pdf", task.task_file_name)
|
||||
self.assertEqual("documents.tasks.consume_file", task.task_name)
|
||||
self.assertEqual(celery.states.PENDING, task.status)
|
||||
|
||||
def test_task_prerun_handler(self):
|
||||
self.util_call_before_task_publish_handler(headers_to_use=self.HEADERS_CONSUME)
|
||||
"""
|
||||
GIVEN:
|
||||
- A celery task is started via the consume folder
|
||||
WHEN:
|
||||
- Task starts execution
|
||||
THEN:
|
||||
- The task is marked as started
|
||||
"""
|
||||
self.util_call_before_task_publish_handler(
|
||||
headers_to_use=self.HEADERS_CONSUME,
|
||||
body_to_use=self.BODY_CONSUME,
|
||||
)
|
||||
|
||||
task_prerun_handler(task_id=self.HEADERS_CONSUME["id"])
|
||||
|
||||
@@ -113,7 +147,18 @@ class TestTaskSignalHandler(DirectoriesMixin, TestCase):
|
||||
self.assertEqual(celery.states.STARTED, task.status)
|
||||
|
||||
def test_task_postrun_handler(self):
|
||||
self.util_call_before_task_publish_handler(headers_to_use=self.HEADERS_CONSUME)
|
||||
"""
|
||||
GIVEN:
|
||||
- A celery task is started via the consume folder
|
||||
WHEN:
|
||||
- Task finished execution
|
||||
THEN:
|
||||
- The task is marked as started
|
||||
"""
|
||||
self.util_call_before_task_publish_handler(
|
||||
headers_to_use=self.HEADERS_CONSUME,
|
||||
body_to_use=self.BODY_CONSUME,
|
||||
)
|
||||
|
||||
task_postrun_handler(
|
||||
task_id=self.HEADERS_CONSUME["id"],
|
||||
|
Reference in New Issue
Block a user