From cb55ccba5180e204b91d9d61fffedac54898ea51 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Wed, 7 May 2025 11:45:47 +0200 Subject: [PATCH] Fixed tests (sievefilters & webmail) --- modoboa/sievefilters/api/v2/tests.py | 3 +- modoboa/sievefilters/mocks.py | 20 ------- modoboa/webmail/tests/test_viewsets.py | 75 +------------------------- 3 files changed, 3 insertions(+), 95 deletions(-) diff --git a/modoboa/sievefilters/api/v2/tests.py b/modoboa/sievefilters/api/v2/tests.py index bd33fc83a..566172aa6 100644 --- a/modoboa/sievefilters/api/v2/tests.py +++ b/modoboa/sievefilters/api/v2/tests.py @@ -12,6 +12,7 @@ from modoboa.admin import factories as admin_factories from modoboa.core import models as core_models from modoboa.lib.tests import ModoAPITestCase from modoboa.sievefilters import mocks +from modoboa.webmail.mocks import IMAP4Mock Application = get_application_model() AccessToken = get_access_token_model() @@ -51,7 +52,7 @@ class FilterSetViewSetTestCase(ModoAPITestCase): patcher = mock.patch("imaplib.IMAP4") self.mock_imap4 = patcher.start() - self.mock_imap4.return_value = mocks.IMAP4Mock() + self.mock_imap4.return_value = IMAP4Mock() self.addCleanup(patcher.stop) def authenticate(self, username: str = "user@test.com"): diff --git a/modoboa/sievefilters/mocks.py b/modoboa/sievefilters/mocks.py index c60533798..b3678e6f9 100644 --- a/modoboa/sievefilters/mocks.py +++ b/modoboa/sievefilters/mocks.py @@ -96,23 +96,3 @@ class ManagesieveClientMock: def checkscript(self, content): return True - - -class IMAP4Mock: - """Fake IMAP4 client.""" - - def __init__(self, *args, **kwargs): - self.untagged_responses = {} - - def _quote(self, data): - return data - - def _simple_command(self, name, *args, **kwargs): - if name == "CAPABILITY": - self.untagged_responses["CAPABILITY"] = [b""] - elif name == "LIST": - self.untagged_responses["LIST"] = [b'() "." "INBOX"'] - return "OK", None - - def list(self): - return "OK", [b'() "." "INBOX"'] diff --git a/modoboa/webmail/tests/test_viewsets.py b/modoboa/webmail/tests/test_viewsets.py index 1a724904c..4aea67899 100644 --- a/modoboa/webmail/tests/test_viewsets.py +++ b/modoboa/webmail/tests/test_viewsets.py @@ -15,9 +15,7 @@ from modoboa.core import models as core_models from modoboa.admin import factories as admin_factories from modoboa.lib.tests import ModoAPITestCase from modoboa.webmail.lib.attachments import ComposeSessionManager - -from . import data as tests_data - +from modoboa.webmail.mocks import IMAP4Mock Application = get_application_model() AccessToken = get_access_token_model() @@ -33,77 +31,6 @@ def get_gif(): return gif -class IMAP4Mock: - """Fake IMAP4 client.""" - - def __init__(self, *args, **kwargs): - self.untagged_responses = {} - - def _quote(self, data): - return data - - def _simple_command(self, name, *args, **kwargs): - if name == "CAPABILITY": - self.untagged_responses["CAPABILITY"] = [b""] - elif name == "LIST": - self.untagged_responses["LIST"] = [b'() "." "INBOX"'] - elif name == "NAMESPACE": - self.untagged_responses["NAMESPACE"] = [b'(("" "/")) NIL NIL'] - elif name == "STATUS": - self.untagged_responses["STATUS"] = [b"STATUS INBOX (UNSEEN 10)"] - return "OK", None - - def append(self, *args, **kwargs): - pass - - def create(self, name): - return "OK", None - - def delete(self, name): - return "OK", None - - def list(self): - return "OK", [b'() "." "INBOX"'] - - def rename(self, oldname, newname): - return "OK", None - - def uid(self, command, *args): - if command in ["SEARCH", "SORT"]: - return "OK", [b"19"] - elif command == "FETCH": - uid = int(args[0]) - data = tests_data.BODYSTRUCTURE_SAMPLE_WITH_FLAGS - if uid == 46931: - if args[1] == "(BODYSTRUCTURE)": - data = tests_data.BODYSTRUCTURE_ONLY_4 - elif "HEADER.FIELDS" in args[1]: - data = tests_data.BODYSTRUCTURE_SAMPLE_4 - else: - data = tests_data.BODY_PLAIN_4 - elif uid == 46932: - if args[1] == "(BODYSTRUCTURE)": - data = tests_data.BODYSTRUCTURE_ONLY_5 - elif "HEADER.FIELDS" in args[1]: - data = tests_data.BODYSTRUCTURE_SAMPLE_9 - else: - data = tests_data.BODYSTRUCTURE_SAMPLE_10 - elif uid == 33: - if args[1] == "(BODYSTRUCTURE)": - data = tests_data.BODYSTRUCTURE_EMPTY_MAIL - elif "HEADER.FIELDS" in args[1]: - data = tests_data.BODYSTRUCTURE_EMPTY_MAIL_WITH_HEADERS - else: - data = tests_data.EMPTY_BODY - elif uid == 3444: - data = tests_data.BODYSTRUCTURE_WITH_PDF - elif uid == 133872: - data = tests_data.COMPLETE_MAIL - return "OK", data - elif command in ["COPY", "STORE"]: - return "OK", [] - - class WebmailTestCase(ModoAPITestCase): @classmethod def setUpTestData(cls):