def test_send_embedded_images_some_unused(self): ekind = EmailKind.objects.create( name='my-test-email', language='es', template=('<h1>Hola, {{ first_name }}</h1>' '<img src="cid:logo-solocal">'), plain_template='Hola, {{ first_name }}', default_sender='*****@*****.**', default_recipients='*****@*****.**', default_subject='Email Test', default_reply_to='*****@*****.**', default_context={'first_name': 'Luisa'}) upload_image1 = create_upload_image() upload_image2 = create_upload_image() EmbeddedImage.objects.create(kind=ekind, placeholder_name='logo-solocal', image=upload_image1) EmbeddedImage.objects.create(kind=ekind, placeholder_name='logo-qdq', image=upload_image2) entry_params = {} entry = schedule('my-test-email', 'es', entry_params) email = send(entry) self.assertTrue(entry.sent) self.assertIsNotNone(entry.datetime_sent) self.assertEqual(1, len(email.attachments)) image1 = EmbeddedImage.objects.get(kind=ekind, placeholder_name='logo-solocal') self.assertEqual(image1.content_id[1:-1], email.attachments[0].get('Content-ID'))
def test_send_attachs_success(self): EmailKind.objects.create(name='my-test-email', language='es', template='Hello, world!', plain_template='Hello, world! soy antiguo', default_sender='*****@*****.**', default_recipients='*****@*****.**', default_subject='Email Test', default_reply_to='*****@*****.**') image_content = get_jpg_content() entry_params = { 'attachs': [{ 'filename': 'test.jpg', 'content_type': 'image/jpeg', 'content': base64.b64encode(image_content) }] } entry = schedule('my-test-email', 'es', entry_params) email = send(entry) self.assertTrue(entry.sent) self.assertEqual('348dj38dj28do5jd82', entry.thirdparty_id) self.assertIsNotNone(entry.datetime_sent) self.assertEqual('Hello, world!', entry.rendered_template) self.assertEqual('Hello, world! soy antiguo', entry.rendered_plain_template) att = Attachment.objects.get(entry=entry) self.assertEqual('test.jpg', att.name) self.assertEqual('image/jpeg', att.content_type) self.assertEqual(email.attachments[0][0], 'test.jpg') self.assertEqual(email.attachments[0][1], image_content) self.assertEqual(email.attachments[0][2], 'image/jpeg')
def test_send_no_attachs_success(self): EmailKind.objects.create(name='my-test-email', language='es', template='Hello, world!', plain_template='Hello, world! soy antiguo', default_sender='*****@*****.**', default_recipients='*****@*****.**', default_subject='Email Test', default_reply_to='*****@*****.**') entry_params = {} entry = schedule('my-test-email', 'es', entry_params) email = send(entry) entry = EmailEntry.objects.get(id=entry.id) self.assertTrue(entry.sent) self.assertEqual('348dj38dj28do5jd82', entry.thirdparty_id) self.assertEqual('Hello, world!', entry.rendered_template) self.assertEqual('Hello, world! soy antiguo', entry.rendered_plain_template) self.assertEqual('Hello, world! soy antiguo', email.body) self.assertEqual('Hello, world!', email.alternatives[0][0]) self.assertEqual('text/html', email.alternatives[0][1]) self.assertEqual('348dj38dj28do5jd82', email.response_content[0]['id']) self.assertEqual(entry.recipients.split(','), email.to) self.assertEqual(entry.sender, email.from_email) self.assertEqual(entry.subject, email.subject) self.assertEqual(entry.reply_to.split(','), email.reply_to) self.assertIsNotNone(entry.datetime_sent)
def test_send_no_attachs_failure(self): EmailKind.objects.create(name='my-test-email', language='es', template='Hello, world!', plain_template='Hello, world! soy antiguo', default_sender='*****@*****.**', default_recipients='*****@*****.**', default_subject='Email Test', default_reply_to='*****@*****.**') entry_params = {} entry = schedule('my-test-email', 'es', entry_params) send(entry) entry = EmailEntry.objects.get(id=entry.id) self.assertFalse(entry.sent) self.assertEqual('', entry.thirdparty_id) self.assertEqual('', entry.rendered_template) self.assertEqual('', entry.rendered_plain_template) self.assertIsNone(entry.datetime_sent)
def test_schedule_with_metadata(self): EmailKind.objects.create(name='my-test-email', language='es', template='Hello, world!', plain_template='Hello, world! soy antiguo', default_sender='*****@*****.**', default_recipients='*****@*****.**', default_subject='Email Test', default_reply_to='*****@*****.**') meta_fields = {'meta1': 'meta1value', 'meta2': 'meta2value'} entry = schedule('my-test-email', 'es', {'meta_fields': meta_fields}) email = send(entry) self.assertTrue(entry.sent) self.assertEqual(meta_fields, entry.metadata) self.assertEqual('meta1value', email.metadata['meta1']) self.assertIn('meta2value', email.metadata['meta2'])