def test_plaintext_mailcap_wo_content_type(self): with open('tests/static/mail/basic.eml') as fp: mail = email.message_from_file(fp, _class=email.message.EmailMessage) body_part = utils.get_body_part(mail) actual = utils.extract_body_part(body_part) expected = 'test body\n' self.assertEqual(actual, expected)
def test_plaintext_mailcap(self): expected = 'This was an email\n' mail = EmailMessage() set_basic_headers(mail) mail.set_content('This is an email') body_part = utils.get_body_part(mail) actual = utils.extract_body_part(body_part) self.assertEqual(actual, expected)
def test_simple_utf8_file(self): mail = email.message_from_binary_file( open('tests/static/mail/utf8.eml', 'rb'), _class=email.message.EmailMessage) body_part = utils.get_body_part(mail) actual = utils.extract_body_part(body_part) expected = "Liebe Grüße!\n" self.assertEqual(actual, expected)
def test_text_plain_with_attachment_text(self): mail = EmailMessage() set_basic_headers(mail) mail.set_content('This is an email') mail.add_attachment('this shouldnt be displayed') body_part = utils.get_body_part(mail) actual = utils.extract_body_part(body_part) expected = 'This is an email\n' self.assertEqual(actual, expected)
def test_two_text_plain(self): mail = email.mime.multipart.MIMEMultipart() set_basic_headers(mail) mail.attach(email.mime.text.MIMEText('This is an email')) mail.attach(email.mime.text.MIMEText('This is a second part')) body_part = utils.get_body_part(mail) actual = utils.extract_body(body_part) expected = 'This is an email\n\nThis is a second part' self.assertEqual(actual, expected)
def test_utf8_plaintext_mailcap(self): """ Handle unicode correctly in the presence of a text/plain mailcap entry. https://github.com/pazz/alot/issues/1522 """ mail = email.message_from_binary_file( open('tests/static/mail/utf8.eml', 'rb'), _class=email.message.EmailMessage) body_part = utils.get_body_part(mail) actual = utils.extract_body_part(body_part) expected = "Liebe Grüße?\n" self.assertEqual(actual, expected)
def test_prefer_plaintext_set_mimetype_html(self): expected = 'text/html' mail = self._make_mixed_plain_html() actual = utils.get_body_part(mail, 'html').get_content_type() self.assertEqual(actual, expected)
def test_prefer_html_set_mimetype_plain(self): expected = "text/plain" mail = self._make_mixed_plain_html() actual = utils.get_body_part(mail, 'plain').get_content_type() self.assertEqual(actual, expected)
def test_prefer_html_only(self): expected = 'text/html' mail = self._make_html_only() actual = utils.get_body_part(mail).get_content_type() self.assertEqual(actual, expected)