mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Improved coverage
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
"""Mock objects."""
|
||||
|
||||
from modoboa.webmail import constants
|
||||
from modoboa.webmail.tests import data as tests_data
|
||||
|
||||
|
||||
@@ -43,7 +44,10 @@ class IMAP4Mock:
|
||||
return "OK", [b"19"]
|
||||
elif command == "FETCH":
|
||||
uid = int(args[0])
|
||||
data = tests_data.BODYSTRUCTURE_SAMPLE_WITH_FLAGS
|
||||
if constants.CUSTOM_HEADER_SCHEDULED_ID.upper() in args[1]:
|
||||
data = tests_data.BODYSTRUCTURE_SAMPLE_SCHEDULED
|
||||
else:
|
||||
data = tests_data.BODYSTRUCTURE_SAMPLE_WITH_FLAGS
|
||||
if uid == 46931:
|
||||
if args[1] == "(BODYSTRUCTURE)":
|
||||
data = tests_data.BODYSTRUCTURE_ONLY_4
|
||||
@@ -62,7 +66,12 @@ class IMAP4Mock:
|
||||
if args[1] == "(BODYSTRUCTURE)":
|
||||
data = tests_data.BODYSTRUCTURE_EMPTY_MAIL
|
||||
elif "HEADER.FIELDS" in args[1]:
|
||||
data = tests_data.BODYSTRUCTURE_EMPTY_MAIL_WITH_HEADERS
|
||||
if constants.CUSTOM_HEADER_SCHEDULED_DATETIME.upper() in args[1]:
|
||||
data = (
|
||||
tests_data.BODYSTRUCTURE_EMPTY_MAIL_WITH_HEADERS_SCHEDULED
|
||||
)
|
||||
else:
|
||||
data = tests_data.BODYSTRUCTURE_EMPTY_MAIL_WITH_HEADERS
|
||||
else:
|
||||
data = tests_data.EMPTY_BODY
|
||||
elif uid == 3444:
|
||||
|
||||
@@ -110,6 +110,18 @@ BODYSTRUCTURE_SAMPLE_WITH_FLAGS = [
|
||||
b")",
|
||||
]
|
||||
|
||||
BODYSTRUCTURE_SAMPLE_SCHEDULED = [
|
||||
(
|
||||
b'19 (UID 19 FLAGS (\\Seen) RFC822.SIZE 100000 BODYSTRUCTURE (("text" "plain" ("charset" "ISO-8859-1" "format" "flowed") NIL NIL "7bit" 2 1 NIL NIL NIL NIL)("message" "rfc822" ("name*" "ISO-8859-1\'\'%5B%49%4E%53%43%52%49%50%54%49%4F%4E%5D%20%52%E9%63%E9%70%74%69%6F%6E%20%64%65%20%76%6F%74%72%65%20%64%6F%73%73%69%65%72%20%64%27%69%6E%73%63%72%69%70%74%69%6F%6E%20%46%72%65%65%20%48%61%75%74%20%44%E9%62%69%74") NIL NIL "8bit" 3632 ("Wed, 13 Dec 2006 20:30:02 +0100" {70}', # noqa
|
||||
b"[INSCRIPTION] R\xe9c\xe9ption de votre dossier d'inscription Free Haut D\xe9bit",
|
||||
), # noqa
|
||||
(
|
||||
b' (("Free Haut Debit" NIL "inscription" "freetelecom.fr")) (("Free Haut Debit" NIL "inscription" "freetelecom.fr")) ((NIL NIL "hautdebit" "freetelecom.fr")) ((NIL NIL "nguyen.antoine" "wanadoo.fr")) NIL NIL NIL "<20061213193125.9DA0919AC@dgroup2-2.proxad.net>") ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 1428 38 NIL ("inline" NIL) NIL NIL) 76 NIL ("inline" ("filename*" "ISO-8859-1\'\'%5B%49%4E%53%43%52%49%50%54%49%4F%4E%5D%20%52%E9%63%E9%70%74%69%6F%6E%20%64%65%20%76%6F%74%72%65%20%64%6F%73%73%69%65%72%20%64%27%69%6E%73%63%72%69%70%74%69%6F%6E%20%46%72%65%65%20%48%61%75%74%20%44%E9%62%69%74")) NIL NIL) "mixed" ("boundary" "------------040706080908000209030901") NIL NIL NIL) BODY[HEADER.FIELDS (DATE FROM TO CC SUBJECT X-SCHEDULED-ID X-SCHEDULED-DATETIME)] {348}', # noqa
|
||||
b"Date: Tue, 19 Dec 2006 19:50:13 +0100\r\nFrom: Antoine Nguyen <nguyen.antoine@wanadoo.fr>\r\nTo: Antoine Nguyen <tonio@koalabs.org>\r\nSubject: [Fwd: [INSCRIPTION] =?ISO-8859-1?Q?R=E9c=E9ption_de_votre_?=\r\n =?ISO-8859-1?Q?dossier_d=27inscription_Free_Haut_D=E9bit=5D?=\r\nX-Scheduled-ID: 1123\r\nX-Scheduled-Datetime: 2026-02-02T15:37:59.022298+00:00\r\n\r\n",
|
||||
),
|
||||
b")",
|
||||
]
|
||||
|
||||
EMPTY_BODYSTRUCTURE = 'BODYSTRUCTURE (("text" "plain" ("charset" "us-ascii") NIL NIL "quoted-printable" 0 0 NIL NIL NIL NIL)("application" "zip" ("name" "hotmail.com!ngyn.org!1435428000!1435514400.zip") NIL NIL "base64" 978 NIL ("attachment" ("filename" "hotmail.com!ngyn.org!1435428000!1435514400.zip")) NIL NIL) "mixed" ("boundary" "--boundary_32281_b52cf564-2a50-4f96-aeb0-ef5f83b05463") NIL NIL NIL)'
|
||||
|
||||
BODYSTRUCTURE_EMPTY_MAIL = [bytes(f"33 (UID 33 {EMPTY_BODYSTRUCTURE})", "utf-8")]
|
||||
@@ -123,6 +135,15 @@ BODYSTRUCTURE_EMPTY_MAIL_WITH_HEADERS = [
|
||||
b")",
|
||||
]
|
||||
|
||||
BODYSTRUCTURE_EMPTY_MAIL_WITH_HEADERS_SCHEDULED = [
|
||||
(
|
||||
bytes(f"33 (UID 33 {EMPTY_BODYSTRUCTURE}", "utf-8")
|
||||
+ b" BODY[HEADER.FIELDS (FROM TO CC DATE SUBJECT X-SCHEDULED-DATETIME)] {293}",
|
||||
b"From: <Service.client10@maaf.fr>\r\nTo: <TONIO@NGYN.ORG>\r\nCc: \r\nSubject: Notre contact du 28/12/2011 - 192175092\r\nDate: Wed, 28 Dec 2011 13:29:17 +0100\r\nMessage-ID: <CABY0dkJspTaFn7v-1OG1nc9M0Qxn+VUTpcXzxyGNBnSnZtqMrw@mail.gmail.com>\r\nX-Scheduled-Datetime: 2026-02-02T15:37:59.022298+00:00\r\n\r\n",
|
||||
),
|
||||
b")",
|
||||
]
|
||||
|
||||
EMPTY_BODY = [(b"33 (UID 33 BODY[1] {0}", b""), b")"]
|
||||
|
||||
BODYSTRUCTURE_WITH_PDF = [
|
||||
|
||||
@@ -255,6 +255,11 @@ class UserEmailViewSetTestCase(WebmailTestCase):
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue(response.json()["subject"].startswith("Fwd:"))
|
||||
|
||||
# Scheduled message
|
||||
response = self.client.get(f"{url}?mailbox=Scheduled&mailid=33")
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn("scheduled_datetime", response.json())
|
||||
|
||||
def test_attachment(self):
|
||||
self.authenticate()
|
||||
url = reverse("v2:webmail-email-attachment")
|
||||
@@ -445,6 +450,16 @@ class ScheduledMessageViewSetTestCase(WebmailTestCase):
|
||||
account=self.user, scheduled_datetime=timezone.now()
|
||||
)
|
||||
|
||||
def test_listmailbox(self):
|
||||
self.authenticate()
|
||||
url = reverse("v2:webmail-email-list")
|
||||
response = self.client.get(f"{url}?mailbox=Scheduled")
|
||||
self.assertEqual(response.status_code, 200)
|
||||
content = response.json()
|
||||
self.assertEqual(content["count"], 1)
|
||||
self.assertEqual(content["results"][0]["scheduled_id"], 1123)
|
||||
self.assertIn("scheduled_datetime_raw", content["results"][0])
|
||||
|
||||
def test_delete(self):
|
||||
self.authenticate()
|
||||
url = reverse("v2:webmail-scheduled-message-detail", args=[self.message.id])
|
||||
|
||||
Reference in New Issue
Block a user