mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-11 10:00:48 -05:00
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
from unittest import mock
|
|
|
|
from django.test import TestCase, override_settings
|
|
|
|
from documents.models import Document, Tag, Correspondent
|
|
from documents.signals.handlers import run_post_consume_script
|
|
|
|
|
|
class PostConsumeTestCase(TestCase):
|
|
|
|
@mock.patch("documents.signals.handlers.Popen")
|
|
@override_settings(POST_CONSUME_SCRIPT=None)
|
|
def test_no_post_consume_script(self, m):
|
|
doc = Document.objects.create(title="Test", mime_type="application/pdf")
|
|
tag1 = Tag.objects.create(name="a")
|
|
tag2 = Tag.objects.create(name="b")
|
|
doc.tags.add(tag1)
|
|
doc.tags.add(tag2)
|
|
|
|
run_post_consume_script(None, doc)
|
|
|
|
m.assert_not_called()
|
|
|
|
@mock.patch("documents.signals.handlers.Popen")
|
|
@override_settings(POST_CONSUME_SCRIPT="script")
|
|
def test_post_consume_script_simple(self, m):
|
|
doc = Document.objects.create(title="Test", mime_type="application/pdf")
|
|
|
|
run_post_consume_script(None, doc)
|
|
|
|
m.assert_called_once()
|
|
|
|
@mock.patch("documents.signals.handlers.Popen")
|
|
@override_settings(POST_CONSUME_SCRIPT="script")
|
|
def test_post_consume_script_with_correspondent(self, m):
|
|
c = Correspondent.objects.create(name="my_bank")
|
|
doc = Document.objects.create(title="Test", mime_type="application/pdf", correspondent=c)
|
|
tag1 = Tag.objects.create(name="a")
|
|
tag2 = Tag.objects.create(name="b")
|
|
doc.tags.add(tag1)
|
|
doc.tags.add(tag2)
|
|
|
|
run_post_consume_script(None, doc)
|
|
|
|
m.assert_called_once()
|
|
|
|
args, kwargs = m.call_args
|
|
|
|
command = args[0]
|
|
|
|
self.assertEqual(command[0], "script")
|
|
self.assertEqual(command[1], str(doc.pk))
|
|
self.assertEqual(command[5], f"/api/documents/{doc.pk}/download/")
|
|
self.assertEqual(command[6], f"/api/documents/{doc.pk}/thumb/")
|
|
self.assertEqual(command[7], "my_bank")
|
|
self.assertCountEqual(command[8].split(","), ["a", "b"])
|