-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathtests.py
84 lines (67 loc) · 3.34 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from django.test import TestCase
from django.test.utils import override_settings
from django.core.mail import send_mail, EmailMessage, EmailMultiAlternatives
import django
from .models import Email
@override_settings(EMAIL_BACKEND='db_email_backend.backend.DBEmailBackend')
class DBEmailBackendTest(TestCase):
def test_send_mail(self):
self.assertEqual(Email.objects.count(), 0)
send_mail('test mail', 'this is just a test', '[email protected]',
['[email protected]', '[email protected]'])
email = Email.objects.get()
self.assertEqual(email.subject, 'test mail')
self.assertEqual(email.body, 'this is just a test')
self.assertEqual(email.content_subtype, 'plain')
self.assertEqual(email.from_email, '[email protected]')
self.assertEqual(email.to, '[email protected]; [email protected]')
self.assertEqual(email.cc, '')
self.assertEqual(email.bcc, '')
self.assertEqual(email.headers, '')
self.assertEqual(email.attachments.count(), 0)
self.assertEqual(email.alternatives.count(), 0)
def test_send_attachments(self):
self.assertEqual(Email.objects.count(), 0)
e = EmailMessage('test mail', 'this is just a test', '[email protected]',
['[email protected]', '[email protected]'])
e.attach_file('README.md')
e.send()
email = Email.objects.get()
self.assertEqual(email.subject, 'test mail')
self.assertEqual(email.body, 'this is just a test')
self.assertEqual(email.content_subtype, 'plain')
self.assertEqual(email.from_email, '[email protected]')
self.assertEqual(email.to, '[email protected]; [email protected]')
self.assertEqual(email.cc, '')
self.assertEqual(email.bcc, '')
self.assertEqual(email.headers, '')
attachment = email.attachments.get()
self.assertEqual(attachment.filename, 'README.md')
with open('README.md') as f:
self.assertEqual(attachment.file.read().decode('utf8'), f.read())
if django.VERSION >= (1, 9):
self.assertIn(attachment.mimetype, ('application/octet-stream', 'text/markdown'))
else:
self.assertEqual(attachment.mimetype, '')
self.assertEqual(email.alternatives.count(), 0)
def test_send_alternatives(self):
self.assertEqual(Email.objects.count(), 0)
e = EmailMultiAlternatives('test mail', 'this is just a test', '[email protected]',
['[email protected]', '[email protected]'])
e.attach_alternative('<h1>Testing stuff</h1>', 'text/html')
e.send()
email = Email.objects.get()
self.assertEqual(email.subject, 'test mail')
self.assertEqual(email.body, 'this is just a test')
self.assertEqual(email.content_subtype, 'plain')
self.assertEqual(email.from_email, '[email protected]')
self.assertEqual(email.to, '[email protected]; [email protected]')
self.assertEqual(email.cc, '')
self.assertEqual(email.bcc, '')
self.assertEqual(email.headers, '')
alternative = email.alternatives.get()
self.assertEqual(alternative.mimetype, 'text/html')
self.assertEqual(alternative.content, '<h1>Testing stuff</h1>')
self.assertEqual(email.attachments.count(), 0)