From e3c113849e0bccb6fd227ba07e8cd18c786d307a Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Mon, 4 Nov 2024 14:48:17 +0100 Subject: [PATCH] Fixed tests --- modoboa/lib/email_utils.py | 8 ++++---- modoboa/lib/tests/sample_messages/multipart-input.txt | 5 ++--- .../sample_messages/multipart-output-html_links.txt | 9 ++------- .../sample_messages/multipart-output-html_nolinks.txt | 9 ++------- .../sample_messages/multipart-output-plain_nolinks.txt | 4 ++-- modoboa/lib/tests/test_email_utils.py | 8 ++++---- requirements.txt | 2 +- 7 files changed, 17 insertions(+), 28 deletions(-) diff --git a/modoboa/lib/email_utils.py b/modoboa/lib/email_utils.py index 793304d8b..b216336bc 100644 --- a/modoboa/lib/email_utils.py +++ b/modoboa/lib/email_utils.py @@ -9,11 +9,11 @@ from email.utils import formataddr, formatdate, getaddresses, make_msgid import chardet import lxml.html from lxml.html import defs -from lxml.html.clean import Cleaner +from lxml_html_clean import Cleaner from django.core.mail import EmailMessage from django.template.loader import render_to_string -from django.utils.encoding import smart_str, smart_str +from django.utils.encoding import smart_str from django.utils.html import conditional_escape, escape from django.utils.translation import gettext as _ @@ -26,7 +26,7 @@ _RE_REMOVE_EXTRA_WHITESPACE = re.compile(r"\n\s*\n") _RE_CID = re.compile(r".*[ ]*cid=\"([^\"]*)\".*", re.I) -class EmailAddress(object): +class EmailAddress: def __init__(self, address): self.name, self.address = u2u_decode.decode_address(address) @@ -39,7 +39,7 @@ class EmailAddress(object): return self.fulladdress -class Email(object): +class Email: _basic_headers = ( "From", diff --git a/modoboa/lib/tests/sample_messages/multipart-input.txt b/modoboa/lib/tests/sample_messages/multipart-input.txt index ee0b51430..9b29082fd 100644 --- a/modoboa/lib/tests/sample_messages/multipart-input.txt +++ b/modoboa/lib/tests/sample_messages/multipart-input.txt @@ -57,7 +57,7 @@ This is an *html* /test /_message._ :-) --- +-- Someone someone@example.net @@ -83,12 +83,11 @@ Content-Transfer-Encoding: 7bit
-
-- 
+    
--
 someone
 someone@example.net
- --------------D585B241EEF60F0F44EC20E5 Content-Type: image/png; name="image.png" diff --git a/modoboa/lib/tests/sample_messages/multipart-output-html_links.txt b/modoboa/lib/tests/sample_messages/multipart-output-html_links.txt index 92c507ec5..67177a723 100644 --- a/modoboa/lib/tests/sample_messages/multipart-output-html_links.txt +++ b/modoboa/lib/tests/sample_messages/multipart-output-html_links.txt @@ -8,13 +8,8 @@ :-)


-
-- 
+    
--
 someone
 someone@example.net
-Some HTML text, a link, an -embedded image and an external image.
-
-
-Nifty!
- \ No newline at end of file + diff --git a/modoboa/lib/tests/sample_messages/multipart-output-html_nolinks.txt b/modoboa/lib/tests/sample_messages/multipart-output-html_nolinks.txt index 56d847fb8..00328ac8d 100644 --- a/modoboa/lib/tests/sample_messages/multipart-output-html_nolinks.txt +++ b/modoboa/lib/tests/sample_messages/multipart-output-html_nolinks.txt @@ -8,13 +8,8 @@ :-)


-
-- 
+    
--
 someone
 someone@example.net
-Some HTML text, a link, an -embedded image and an external image.
-
-
-Nifty!
- \ No newline at end of file + diff --git a/modoboa/lib/tests/sample_messages/multipart-output-plain_nolinks.txt b/modoboa/lib/tests/sample_messages/multipart-output-plain_nolinks.txt index 8795edadc..855fa5ca7 100644 --- a/modoboa/lib/tests/sample_messages/multipart-output-plain_nolinks.txt +++ b/modoboa/lib/tests/sample_messages/multipart-output-plain_nolinks.txt @@ -2,6 +2,6 @@ :-) --- +-- Someone -someone@example.net
\ No newline at end of file +someone@example.net
diff --git a/modoboa/lib/tests/test_email_utils.py b/modoboa/lib/tests/test_email_utils.py index 963ed319a..1c6844ccc 100644 --- a/modoboa/lib/tests/test_email_utils.py +++ b/modoboa/lib/tests/test_email_utils.py @@ -34,10 +34,10 @@ class EmailTests(SimpleTestCase): output: {message_id}-output-{dformat}_{no,}links.txt """ - def _get_expected_output(self, message_id, **kwargs): + def _get_expected_output(self, message_id: str, **kwargs) -> str: ext = kwargs["dformat"] if "dformat" in kwargs else "plain" ext += "_links" if "links" in kwargs and kwargs["links"] else "_nolinks" - message_path = os.path.join(SAMPLES_DIR, "%s-output-%s.txt" % (message_id, ext)) + message_path = os.path.join(SAMPLES_DIR, f"{message_id}-output-{ext}.txt") assert os.path.isfile(message_path), "%s does not exist." % message_path with open(message_path, "rb") as fp: @@ -46,11 +46,11 @@ class EmailTests(SimpleTestCase): return mail_text - def _test_email(self, message_id, **kwargs): + def _test_email(self, message_id: str, **kwargs) -> None: """Boiler plate code for testing e-mails.""" expected_output = self._get_expected_output(message_id, **kwargs) output = EmailTestImplementation(message_id, **kwargs).body - self.assertEqual(output, expected_output) + self.assertEqual(output.strip("\n"), expected_output.strip("\n")) def test_invalid_links_value(self): """modoboa-amavis set links = "0"; in python "0" == True, fixed in PR 79 diff --git a/requirements.txt b/requirements.txt index 4ff57358a..c314b0d8c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -30,7 +30,7 @@ python-dateutil cryptography pytz requests -lxml +lxml[html_clean] chardet ovh oath