def test_simple_utf8_file(self): mail = email.message_from_binary_file( open('tests/static/mail/utf8.eml', 'rb'), _class=email.message.EmailMessage) actual = utils.extract_body(mail) expected = "Liebe Grüße!\n" self.assertEqual(actual, expected)
def test_prefer_html(self): expected = ( '<!DOCTYPE html><html><body>This is an html email</body></html>') mail = self._make_mixed_plain_html() actual = utils.extract_body(mail) self.assertEqual(actual, expected)
def test_types_provided(self): # This should not return html, even though html is set to preferred # since a types variable is passed expected = 'This is an email' mail = self._make_mixed_plain_html() actual = utils.extract_body(mail, types=['text/plain']) self.assertEqual(actual, expected)
def test_single_text_plain(self): mail = email.mime.text.MIMEText('This is an email') self._set_basic_headers(mail) actual = utils.extract_body(mail) expected = 'This is an email' self.assertEqual(actual, expected)
def test_single_text_plain(self): mail = EmailMessage() self._set_basic_headers(mail) mail.set_content('This is an email') actual = utils.extract_body(mail) expected = 'This is an email\n' self.assertEqual(actual, expected)
def test_text_plain_with_attachment_text(self): mail = EmailMessage() self._set_basic_headers(mail) mail.set_content('This is an email') mail.add_attachment('this shouldnt be displayed') actual = utils.extract_body(mail) expected = 'This is an email\n' self.assertEqual(actual, expected)
def test_two_text_plain(self): mail = email.mime.multipart.MIMEMultipart() self._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')) actual = utils.extract_body(mail) expected = 'This is an email\n\nThis is a second part' self.assertEqual(actual, expected)
def test_text_plain_and_other(self): mail = email.mime.multipart.MIMEMultipart() self._set_basic_headers(mail) mail.attach(email.mime.text.MIMEText('This is an email')) mail.attach(email.mime.application.MIMEApplication(b'1')) actual = utils.extract_body(mail) expected = 'This is an email' self.assertEqual(actual, expected)
def test_require_mailcap_file(self): mail = email.mime.multipart.MIMEMultipart() self._set_basic_headers(mail) mail.attach(email.mime.text.MIMEText( '<!DOCTYPE html><html><body>This is an html email</body></html>', 'html')) actual = utils.extract_body(mail) expected = ( '<!DOCTYPE html><html><body>This is an html email</body></html>') self.assertEqual(actual, expected)
def test_text_plain_with_attachment_text(self): mail = email.mime.multipart.MIMEMultipart() self._set_basic_headers(mail) mail.attach(email.mime.text.MIMEText('This is an email')) attachment = email.mime.text.MIMEText('this shouldnt be displayed') attachment['Content-Disposition'] = 'attachment' mail.attach(attachment) actual = utils.extract_body(mail) expected = 'This is an email' self.assertEqual(actual, expected)
def test_plaintext_mailcap(self): expected = 'This was an email\n' mail = self._make_mixed_plain_html() actual = utils.extract_body(mail) self.assertEqual(actual, expected)
def test_prefer_html_only(self): expected = '<!DOCTYPE html><html><body>This is an html email</body></html>\n' mail = self._make_html_only() actual = utils.extract_body(mail) self.assertEqual(actual, expected)
def test_prefer_plaintext(self): expected = 'This is an email' mail = self._make_mixed_plain_html() actual = utils.extract_body(mail) self.assertEqual(actual, expected)