def test_process_regular(self): email = '*****@*****.**' subject = 'Test email' service = BaseEmailService(recipient_email_list=[email]) service.subject = subject service.template_name = 'test_email.html' self.assertTrue(service.process())
def test_process_with_error(self): subject = 'Test email' service = BaseEmailService() service.subject = subject service.template_name = 'test_email.html' with self.assertRaises(EmailServiceConfigError): service.process()
def test_is_valid_positive_case(self): email = '*****@*****.**' subject = 'Test email' service = BaseEmailService(recipient_email_list=[email]) service.subject = subject service.template_name = 'test_email.html' self.assertTrue(service.is_valid())
def test_has_errors_negative_case(self): email = '*****@*****.**' subject = 'Test email' service = BaseEmailService(recipient_email_list=[email]) service.subject = subject service.template_name = 'test_email.html' self.assertFalse(service.has_errors())
def test_is_valid_no_template(self): email = '*****@*****.**' subject = 'Test email' service = BaseEmailService(recipient_email_list=[email]) service.subject = subject with self.assertRaises(EmailServiceConfigError): service.is_valid()
def test_build_mail_object_regular(self): from_email = '*****@*****.**' reply_to_email = '*****@*****.**' email = '*****@*****.**' subject = 'Test email' my_var = 'Lorem ipsum dolor!' service = BaseEmailService(recipient_email_list=[email], context_data={'my_var': my_var}) service.FROM_EMAIL = from_email service.REPLY_TO_ADDRESS = reply_to_email service.subject = subject service.template_name = 'test_email.html' msg_obj = service._build_mail_object() # Assertions self.assertIsInstance(msg_obj, EmailMultiAlternatives) self.assertEqual(msg_obj.subject, subject) self.assertEqual(msg_obj.from_email, from_email) self.assertEqual(msg_obj.to, [email]) self.assertEqual(msg_obj.reply_to, [reply_to_email]) self.assertIn('Friday', msg_obj.body) self.assertIn(my_var, msg_obj.body) self.assertIn('Friday', msg_obj.alternatives[0][0]) self.assertIn(my_var, msg_obj.alternatives[0][0])
def test_get_subject_with_prefix(self): prefix = 'Ai: Core' subject = 'I am a subject!' service = BaseEmailService() service.SUBJECT_PREFIX = prefix service.subject = subject self.assertIn(prefix, service.get_subject()) self.assertIn(subject, service.get_subject())
def test_setting_txt_templates_works(self): my_var = 'Lorem ipsum dolor!' service = BaseEmailService( recipient_email_list=['*****@*****.**'], context_data={'my_var': my_var}) service.FROM_EMAIL = '*****@*****.**' service.subject = 'Test mail' service.template_name = 'test_email.html' service.template_txt_name = 'test_email.txt' msg_obj = service._build_mail_object() # Assertions self.assertIsInstance(msg_obj, EmailMultiAlternatives) self.assertIn('I am a different content', msg_obj.body) self.assertNotIn('I am a different content', msg_obj.alternatives[0][0]) self.assertIn(my_var, msg_obj.body)
def test_build_mail_object_with_attachments(self): from_email = '*****@*****.**' reply_to_email = '*****@*****.**' email = '*****@*****.**' subject = 'Test email' my_var = 'Lorem ipsum dolor!' file_path = settings.BASE_PATH / 'tests/files/testfile.txt' service = BaseEmailService(recipient_email_list=[email], context_data={'my_var': my_var}, attachment_list=[file_path]) service.FROM_EMAIL = from_email service.REPLY_TO_ADDRESS = reply_to_email service.subject = subject service.template_name = 'test_email.html' msg_obj = service._build_mail_object() # Assertions self.assertIsInstance(msg_obj, EmailMultiAlternatives) self.assertEqual(len(msg_obj.attachments), 1) self.assertEqual(msg_obj.attachments[0][0], basename(file_path))
def test_is_valid_no_recipient(self): subject = 'Test email' service = BaseEmailService() service.subject = subject with self.assertRaises(EmailServiceConfigError): service.is_valid()
def test_get_subject_no_prefix(self): subject = 'I am a subject!' service = BaseEmailService() service.subject = subject self.assertEqual(service.get_subject(), subject)