mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-21 10:29:29 -05:00
Add coverage
This commit is contained in:
parent
6b398a6c62
commit
09c324637e
@ -1,6 +1,7 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from unittest import mock
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
import pytest
|
import pytest
|
||||||
@ -662,3 +663,67 @@ class TestParser:
|
|||||||
request = httpx_mock.get_request()
|
request = httpx_mock.get_request()
|
||||||
|
|
||||||
assert str(request.url) == "http://localhost:3000/forms/chromium/convert/html"
|
assert str(request.url) == "http://localhost:3000/forms/chromium/convert/html"
|
||||||
|
|
||||||
|
@pytest.mark.httpx_mock(can_send_already_matched_responses=True)
|
||||||
|
@mock.patch("gotenberg_client._merge.MergeRoute.merge")
|
||||||
|
@mock.patch("paperless_mail.models.MailRule.objects.get")
|
||||||
|
def test_generate_pdf_layout_options(
|
||||||
|
self,
|
||||||
|
mock_mailrule_get: mock.Mock,
|
||||||
|
mock_merge_route: mock.Mock,
|
||||||
|
httpx_mock: HTTPXMock,
|
||||||
|
mail_parser: MailDocumentParser,
|
||||||
|
html_email_file: Path,
|
||||||
|
html_email_pdf_file: Path,
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
GIVEN:
|
||||||
|
- Email message
|
||||||
|
WHEN:
|
||||||
|
- Email is parsed with different layout options
|
||||||
|
THEN:
|
||||||
|
- Gotenberg is called with the correct layout option
|
||||||
|
"""
|
||||||
|
httpx_mock.add_response(
|
||||||
|
url="http://localhost:9998/tika/text",
|
||||||
|
method="PUT",
|
||||||
|
json={
|
||||||
|
"Content-Type": "text/html",
|
||||||
|
"X-TIKA:Parsed-By": [],
|
||||||
|
"X-TIKA:content": "This is some Tika HTML text",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
httpx_mock.add_response(
|
||||||
|
url="http://localhost:3000/forms/chromium/convert/html",
|
||||||
|
method="POST",
|
||||||
|
content=html_email_pdf_file.read_bytes(),
|
||||||
|
)
|
||||||
|
httpx_mock.add_response(
|
||||||
|
url="http://localhost:3000/forms/pdfengines/merge",
|
||||||
|
method="POST",
|
||||||
|
content=b"Pretend merged PDF content",
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_layout_option(layout_option, expected_calls, expected_pdf_names):
|
||||||
|
mock_mailrule_get.return_value = mock.Mock(pdf_layout=layout_option)
|
||||||
|
mail_parser.parse(
|
||||||
|
document_path=html_email_file,
|
||||||
|
mime_type="message/rfc822",
|
||||||
|
mailrule_id=1,
|
||||||
|
)
|
||||||
|
args, _ = mock_merge_route.call_args
|
||||||
|
assert len(args[0]) == expected_calls
|
||||||
|
for i, pdf in enumerate(expected_pdf_names):
|
||||||
|
assert args[0][i].name == pdf
|
||||||
|
|
||||||
|
# 1 = MailRule.PdfLayout.TEXT_HTML
|
||||||
|
test_layout_option(1, 2, ["email_as_pdf.pdf", "html.pdf"])
|
||||||
|
|
||||||
|
# 2 = MailRule.PdfLayout.HTML_TEXT
|
||||||
|
test_layout_option(2, 2, ["html.pdf", "email_as_pdf.pdf"])
|
||||||
|
|
||||||
|
# 3 = MailRule.PdfLayout.HTML_ONLY
|
||||||
|
test_layout_option(3, 1, ["html.pdf"])
|
||||||
|
|
||||||
|
# 4 = MailRule.PdfLayout.TEXT_ONLY
|
||||||
|
test_layout_option(4, 1, ["email_as_pdf.pdf"])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user