mirror of
https://github.com/coddingtonbear/django-mailbox.git
synced 2026-07-09 22:38:19 +02:00
parent
eee4134a4d
commit
c39db7c962
1 changed files with 57 additions and 3 deletions
|
|
@ -5,6 +5,7 @@ import mock
|
|||
import six
|
||||
|
||||
from django_mailbox.models import Mailbox, Message
|
||||
from django_mailbox.utils import convert_header_to_unicode
|
||||
from django_mailbox.tests.base import EmailMessageTestCase
|
||||
from django.core.mail import EmailMessage
|
||||
|
||||
|
|
@ -143,17 +144,70 @@ class TestProcessEmail(EmailMessageTestCase):
|
|||
def test_message_issue_82(self):
|
||||
""" Ensure that we properly handle incorrectly encoded messages
|
||||
|
||||
``message_with_utf8_char.eml``'s primary text payload is marked
|
||||
as being iso-8859-1 data, but actually contains UTF-8 bytes.
|
||||
|
||||
"""
|
||||
email_object = self._get_email_object('email_issue_82.eml')
|
||||
it = 'works'
|
||||
try:
|
||||
# it's ok to call as_string() before passing email_object
|
||||
# to _get_dehydrated_message()
|
||||
email_object.as_string()
|
||||
except:
|
||||
it = 'do not works'
|
||||
|
||||
success = True
|
||||
try:
|
||||
msg = self.mailbox.process_incoming_message(email_object)
|
||||
except ValueError:
|
||||
success = False
|
||||
|
||||
self.assertEqual(it, 'works')
|
||||
self.assertEqual(True, success)
|
||||
|
||||
def test_message_issue_82_bis(self):
|
||||
""" Ensure that the email object is good before and after
|
||||
calling _get_dehydrated_message()
|
||||
|
||||
"""
|
||||
message = self._get_email_object('email_issue_82.eml')
|
||||
|
||||
success = True
|
||||
|
||||
# this is the code of _process_message()
|
||||
msg = Message()
|
||||
# if STORE_ORIGINAL_MESSAGE:
|
||||
# msg.eml.save('%s.eml' % uuid.uuid4(), ContentFile(message), save=False)
|
||||
msg.mailbox = self.mailbox
|
||||
if 'subject' in message:
|
||||
msg.subject = convert_header_to_unicode(message['subject'])[0:255]
|
||||
if 'message-id' in message:
|
||||
msg.message_id = message['message-id'][0:255]
|
||||
if 'from' in message:
|
||||
msg.from_header = convert_header_to_unicode(message['from'])
|
||||
if 'to' in message:
|
||||
msg.to_header = convert_header_to_unicode(message['to'])
|
||||
elif 'Delivered-To' in message:
|
||||
msg.to_header = convert_header_to_unicode(message['Delivered-To'])
|
||||
msg.save()
|
||||
|
||||
#here the message is ok
|
||||
str_msg = message.as_string()
|
||||
message = self.mailbox._get_dehydrated_message(message, msg)
|
||||
try:
|
||||
# here as_string raises UnicodeEncodeError
|
||||
str_msg = message.as_string()
|
||||
except:
|
||||
success = False
|
||||
|
||||
msg.set_body(str_msg)
|
||||
if message['in-reply-to']:
|
||||
try:
|
||||
msg.in_reply_to = Message.objects.filter(
|
||||
message_id=message['in-reply-to']
|
||||
)[0]
|
||||
except IndexError:
|
||||
pass
|
||||
msg.save()
|
||||
|
||||
self.assertEqual(True, success)
|
||||
|
||||
def test_message_with_misplaced_utf8_content(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue