|
2 | 2 | import json |
3 | 3 | import unittest |
4 | 4 |
|
| 5 | +try: |
| 6 | + from email.message import EmailMessage |
| 7 | +except ImportError: |
| 8 | + # Python2 |
| 9 | + from email import message |
| 10 | + EmailMessage = message.Message |
| 11 | + |
5 | 12 | from sendgrid.helpers.mail import ( |
6 | 13 | ASM, |
7 | 14 | APIKeyIncludedException, |
@@ -557,3 +564,26 @@ def test_disable_tracking(self): |
557 | 564 | def test_directly_setting_substitutions(self): |
558 | 565 | personalization = Personalization() |
559 | 566 | personalization.substitutions = [{'a': 0}] |
| 567 | + |
| 568 | + def test_from_emailmessage(self): |
| 569 | + message = EmailMessage() |
| 570 | + body = 'message that is not urgent' |
| 571 | + try: |
| 572 | + message.set_content(body) |
| 573 | + except AttributeError: |
| 574 | + # Python2 |
| 575 | + message.set_payload(body) |
| 576 | + message.set_default_type('text/plain') |
| 577 | + message['Subject'] = 'URGENT TITLE' |
| 578 | + message['From'] = 'test@example.com' |
| 579 | + message['To'] = 'test@sendgrid.com' |
| 580 | + mail = Mail.from_EmailMessage(message) |
| 581 | + self.assertEqual(mail.subject, 'URGENT TITLE') |
| 582 | + self.assertEqual(mail.from_email.email, 'test@example.com') |
| 583 | + self.assertEqual(len(mail.personalizations), 1) |
| 584 | + self.assertEqual(len(mail.personalizations[0].tos), 1) |
| 585 | + self.assertEqual(mail.personalizations[0].tos[0], {'email': 'test@sendgrid.com'}) |
| 586 | + self.assertEqual(len(mail.contents), 1) |
| 587 | + content = mail.contents[0] |
| 588 | + self.assertEqual(content.type, 'text/plain') |
| 589 | + self.assertEqual(content.value, 'message that is not urgent') |
0 commit comments