Fixed tests (sievefilters & webmail)

This commit is contained in:
Antoine Nguyen
2025-05-07 11:45:47 +02:00
parent 84cf343a60
commit cb55ccba51
3 changed files with 3 additions and 95 deletions
+2 -1
View File
@@ -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"):
-20
View File
@@ -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"']
+1 -74
View File
@@ -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):