From e3c1bde79334940bb70d8ed5235de85bbafc15ca Mon Sep 17 00:00:00 2001 From: phail Date: Sun, 20 Nov 2022 12:06:35 +0100 Subject: [PATCH] remove log mocking, replace pytest raises, use humanfriendly --- src/paperless_mail/parsers.py | 14 ++--- .../tests/samples/html.eml.html | 2 +- src/paperless_mail/tests/samples/html.eml.pdf | Bin 22907 -> 23054 bytes .../tests/samples/html.eml.pdf.webp | Bin 6012 -> 6098 bytes src/paperless_mail/tests/test_parsers.py | 53 ++++++++++-------- src/paperless_mail/tests/test_parsers_live.py | 37 +++++------- 6 files changed, 51 insertions(+), 55 deletions(-) diff --git a/src/paperless_mail/parsers.py b/src/paperless_mail/parsers.py index a845c3157..da0cf96b9 100644 --- a/src/paperless_mail/parsers.py +++ b/src/paperless_mail/parsers.py @@ -10,6 +10,7 @@ from django.conf import settings from documents.parsers import DocumentParser from documents.parsers import make_thumbnail_from_pdf from documents.parsers import ParseError +from humanfriendly import format_size from imap_tools import MailMessage from tika import parser @@ -125,10 +126,8 @@ class MailDocumentParser(DocumentParser): if len(mail.attachments) >= 1: att = [] for a in mail.attachments: - if a.size >= 1024 * 600: - att.append(f"{a.filename} ({(a.size / 1024 / 1024):.2f} MiB)") - else: - att.append(f"{a.filename} ({(a.size / 1024):.2f} KiB)") + att.append(f"{a.filename} ({format_size(a.size, binary=True)})") + self.text += f"Attachments: {', '.join(att)}\n\n" if mail.html != "": @@ -191,7 +190,7 @@ class MailDocumentParser(DocumentParser): return pdf_path @staticmethod - def mail_to_html(mail) -> StringIO: + def mail_to_html(mail: MailMessage) -> StringIO: data = {} def clean_html(text: str): @@ -228,10 +227,7 @@ class MailDocumentParser(DocumentParser): att = [] for a in mail.attachments: - if a.size >= 1024 * 600: - att.append(f"{a.filename} ({(a.size / 1024 / 1024):.2f} MiB)") - else: - att.append(f"{a.filename} ({(a.size / 1024):.2f} KiB)") + att.append(f"{a.filename} ({format_size(a.size, binary=True)})") data["attachments"] = clean_html(", ".join(att)) if data["attachments"] != "": data["attachments_label"] = "Attachments" diff --git a/src/paperless_mail/tests/samples/html.eml.html b/src/paperless_mail/tests/samples/html.eml.html index fbc4f9460..a73be6f95 100644 --- a/src/paperless_mail/tests/samples/html.eml.html +++ b/src/paperless_mail/tests/samples/html.eml.html @@ -30,7 +30,7 @@
Attachments
-
IntM6gnXFm00FEV5.png (6.89 KiB), 600+kbfile.txt (0.59 MiB)
+
IntM6gnXFm00FEV5.png (6.89 KiB), 600+kbfile.txt (600.24 KiB)
diff --git a/src/paperless_mail/tests/samples/html.eml.pdf b/src/paperless_mail/tests/samples/html.eml.pdf index 058988f66172a822ab2fcfd62daeb780a4332aab..de4aeb03840290f980bfac3e99d4b50c8264d785 100644 GIT binary patch delta 11640 zcmaiaWl$Ymv}F?9-Q6MB72x6ocPF@eaJjg2u%N+7aDqc{cL)x_65O2-Jh;Pr^JdvRT2f?_&d;$Xev=9L(7f%w=%W4unE*Ou1fB=LR1_N^m zfdAtV0^>?rd71Evk1xsP6+d9u-k^)wUC)>p9!^M93NFe~yJ%0Du>sLC^pW<>7@hz4 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 delta 11483 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 diff --git a/src/paperless_mail/tests/samples/html.eml.pdf.webp b/src/paperless_mail/tests/samples/html.eml.pdf.webp index b4481efd92e594f4fb8afeeedcc67d1df9e47db1..ab7cd85353078c6f493fc632404493639b719168 100644 GIT binary patch literal 6098 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
  • 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