Skip to content

Commit 7eddee4

Browse files
committed
Python2.7 import compatibility fix
1 parent 23bc052 commit 7eddee4

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

sendgrid/helpers/mail/mail.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,9 +411,14 @@ def from_EmailMessage(cls, message):
411411
subject=message.get('Subject'),
412412
to_email=Email(message.get('To')),
413413
)
414+
try:
415+
body = message.get_content()
416+
except AttributeError:
417+
# Python2
418+
body = message.get_payload()
414419
mail.add_content(Content(
415420
message.get_content_type(),
416-
message.get_content()
421+
body.strip()
417422
))
418423
for k, v in message.items():
419424
mail.add_header(Header(k, v))

test/test_mail.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
# -*- coding: utf-8 -*-
22
import json
33

4-
from email.message import EmailMessage
4+
try:
5+
from email.message import EmailMessage
6+
except ImportError:
7+
# Python2
8+
from email import message
9+
EmailMessage = message.Message
510

611
from sendgrid.helpers.mail import (
712
ASM,
@@ -589,7 +594,12 @@ def test_dynamic_template_data(self):
589594

590595
def test_from_emailmessage(self):
591596
message = EmailMessage()
592-
message.set_content('message that is not urgent')
597+
body = 'message that is not urgent'
598+
try:
599+
message.set_content(body)
600+
except AttributeError:
601+
# Python2
602+
message.set_payload(body)
593603
message.set_default_type('text/plain')
594604
message['Subject'] = 'URGENT TITLE'
595605
message['From'] = 'test@example.com'
@@ -603,4 +613,4 @@ def test_from_emailmessage(self):
603613
self.assertEqual(len(mail.contents), 1)
604614
content = mail.contents[0]
605615
self.assertEqual(content.type, 'text/plain')
606-
self.assertEqual(content.value, 'message that is not urgent\n')
616+
self.assertEqual(content.value, 'message that is not urgent')

0 commit comments

Comments
 (0)