67 wiersze
2.2 KiB
Python
67 wiersze
2.2 KiB
Python
from django.test import TestCase
|
|
from django.core.files.uploadedfile import SimpleUploadedFile
|
|
from django.core import mail
|
|
|
|
from mailings.models import (
|
|
MailTemplate,
|
|
OutgoingEmail,
|
|
)
|
|
|
|
|
|
class TestMailTemplate(TestCase):
|
|
|
|
def setUp(self) -> None:
|
|
super().setUp()
|
|
self.mail_template = MailTemplate.objects.create(
|
|
template_name="test_template",
|
|
template=SimpleUploadedFile(
|
|
"test_template.html", b"<html>{{test_var}}</html>"
|
|
)
|
|
)
|
|
|
|
def test_load_and_process_template_success(self):
|
|
content = self.mail_template.load_and_process_template({"test_var": "test"})
|
|
self.assertEqual(content, "<html>test</html>")
|
|
|
|
def test_load_and_process_template_missing_var_failure(self):
|
|
content = self.mail_template.load_and_process_template({})
|
|
self.assertEqual(content, "<html></html>")
|
|
|
|
def test_load_and_preprocess_template_no_template_file(self):
|
|
self.mail_template.template.delete()
|
|
self.mail_template.template = None
|
|
self.mail_template.save()
|
|
with self.assertRaises(FileNotFoundError):
|
|
self.mail_template.load_and_process_template({})
|
|
|
|
|
|
class TestOutgoingEmail(TestCase):
|
|
|
|
def setUp(self) -> None:
|
|
super().setUp()
|
|
self.mail_template = MailTemplate.objects.create(
|
|
template_name="test_template",
|
|
template=SimpleUploadedFile(
|
|
"test_template.html", b"<html>{{test_var}}</html>"
|
|
)
|
|
)
|
|
|
|
def test_send_success(self):
|
|
email = OutgoingEmail.objects.send(
|
|
template_name="test_template",
|
|
recipient="test@stardust.io", context={},
|
|
sender="sklep-test@stardust.io",
|
|
subject="Test subject"
|
|
)
|
|
self.assertEqual(email.sent, True)
|
|
self.assertEqual(mail.outbox[0].subject, "Test subject")
|
|
|
|
def test_send_missing_template_failure(self):
|
|
with self.assertRaises(MailTemplate.DoesNotExist):
|
|
OutgoingEmail.objects.send(
|
|
template_name="missing_template",
|
|
recipient="", sender="", context={},
|
|
subject="Test subject"
|
|
)
|
|
self.assertEqual(len(mail.outbox), 0)
|