1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-10 06:48:19 +02:00
django-mailbox/django_mailbox/tests/test_integration_imap.py

67 lines
2 KiB
Python
Raw Normal View History

2015-04-11 23:42:14 -07:00
import os
import uuid
from urllib import parse
2015-04-11 23:42:14 -07:00
from django.core.mail import EmailMultiAlternatives
from django_mailbox.models import Mailbox
from django_mailbox.tests.base import EmailMessageTestCase
2021-02-03 23:05:48 -05:00
__all__ = ["TestImap"]
2015-04-11 23:42:14 -07:00
class TestImap(EmailMessageTestCase):
def setUp(self):
super().setUp()
2021-02-03 23:05:48 -05:00
self.test_imap_server = os.environ.get("EMAIL_IMAP_SERVER")
required_settings = [
self.test_imap_server,
self.test_account,
self.test_password,
self.test_smtp_server,
self.test_from_email,
]
if not all(required_settings):
self.skipTest(
"Integration tests are not available without having "
"the the following environment variables set: "
"EMAIL_ACCOUNT, EMAIL_PASSWORD, EMAIL_SMTP_SERVER, "
"EMAIL_IMAP_SERVER."
)
2015-04-11 23:42:14 -07:00
self.mailbox = Mailbox.objects.create(
2021-02-03 23:05:48 -05:00
name="Integration Test Imap", uri=self.get_connection_string()
2015-04-11 23:42:14 -07:00
)
self.arbitrary_identifier = str(uuid.uuid4())
2015-04-11 23:42:14 -07:00
def get_connection_string(self):
return "imap+ssl://{account}:{password}@{server}".format(
account=parse.quote(self.test_account),
password=parse.quote(self.test_password),
2015-04-11 23:42:14 -07:00
server=self.test_imap_server,
)
def test_get_imap_message(self):
2021-02-03 23:05:48 -05:00
text_content = "This is some content"
2015-04-11 23:42:14 -07:00
msg = EmailMultiAlternatives(
self.arbitrary_identifier,
2015-04-11 23:42:14 -07:00
text_content,
self.test_from_email,
[
self.test_account,
2021-02-03 23:05:48 -05:00
],
2015-04-11 23:42:14 -07:00
)
msg.send()
messages = self._get_new_messages(
2021-02-03 23:05:48 -05:00
self.mailbox, condition=lambda m: m["subject"] == self.arbitrary_identifier
)
message = next(messages)
2015-04-11 23:42:14 -07:00
self.assertEqual(message.subject, self.arbitrary_identifier)
self.assertEqual(message.text, text_content)
self.assertEqual(0, len(list(messages)))