66
77from django .conf import settings as django_settings
88from django .core import mail
9+ from django .core .management import call_command
10+ from django .utils .encoding import force_text
911
1012from django_yubin import models , constants , settings , mail_admins , mail_managers
1113
@@ -95,7 +97,7 @@ def testQueuedMessagePriorities(self):
9597 constants .PRIORITY_NORMAL )
9698
9799 @skipIf (not RFC_6532_SUPPORT , 'RFC 6532 not supported' )
98- def testUnicodeQueuedMessage (self ):
100+ def testUnicodeErrorQueuedMessage (self ):
99101 """
100102 Checks that we capture unicode errors on mail
101103 """
@@ -111,22 +113,54 @@ def testUnicodeQueuedMessage(self):
111113 self .assertEqual (num_errors , 1 )
112114
113115 @skipIf (not RFC_6532_SUPPORT , 'RFC 6532 not supported' )
114- def testUnicodePriorityMessage (self ):
116+ def testUnicodeQueuedMessage (self ):
115117 """
116- Checks that we capture unicode errors on mail on priority.
117- It's hard to check as by definiton priority email does not Logs its
118- contents.
118+ Checks that we capture unicode errors on mail
119119 """
120120 from django .core .management import call_command
121- msg = mail .EmailMessage (subject = u'á subject' , body = 'body' ,
122- from_email = u'juan.ló[email protected] ' ,
to = [
u'únñ[email protected] ' ],
123- headers = {'X-Mail-Queue-Priority' : 'now' })
121+ msg = mail .EmailMessage (subject = u'Chère maman' ,
122+ body = 'Je t\' aime très fort' ,
123+ 124+ 124125 msg .send ()
126+
125127 queued_messages = models .QueuedMessage .objects .all ()
126128 self .assertEqual (queued_messages .count (), 1 )
129+
127130 call_command ('send_mail' , verbosity = '0' )
131+
132+ queued_messages = models .QueuedMessage .objects .all ()
133+ self .assertEqual (queued_messages .count (), 0 )
134+
128135 num_errors = models .Log .objects .filter (result = constants .RESULT_FAILED ).count ()
129- self .assertEqual (num_errors , 1 )
136+ self .assertEqual (num_errors , 0 )
137+
138+ message = msg .message ()
139+ self .assertEqual (message ['subject' ], '=?utf-8?q?Ch=C3=A8re_maman?=' )
140+ self .assertEqual (force_text (message .get_payload ()), 'Je t\' aime très fort' )
141+
142+ @skipIf (not RFC_6532_SUPPORT , 'RFC 6532 not supported' )
143+ def testUnicodePriorityNowNotQueuedMessage (self ):
144+ """
145+ Checks that we capture unicode errors on mail on priority.
146+ It's hard to check as by definiton priority email does not Logs its
147+ contents.
148+ """
149+ msg = mail .EmailMessage (subject = u'Chère maman' ,
150+ body = 'Je t\' aime très fort' ,
151+ 152+ 153+ headers = {'X-Mail-Queue-Priority' : 'now-not-queued' })
154+ num_sent = mail .get_connection ().send_messages ([msg ])
155+ self .assertEqual (num_sent , 1 )
156+ queued_messages = models .QueuedMessage .objects .all ()
157+ self .assertEqual (queued_messages .count (), 0 )
158+ call_command ('send_mail' , verbosity = '0' )
159+ num_errors = models .Log .objects .filter (result = constants .RESULT_FAILED ).count ()
160+ self .assertEqual (num_errors , 0 )
161+ message = msg .message ()
162+ self .assertEqual (message ['subject' ], '=?utf-8?q?Ch=C3=A8re_maman?=' )
163+ self .assertEqual (force_text (message .get_payload ()), 'Je t\' aime très fort' )
130164
131165 def testSendMessageNowPriority (self ):
132166 # NOW priority message
0 commit comments