Skip to content

Commit ea796fb

Browse files
Merge pull request #792 from johnpkennedy/master
Fix #790
2 parents 266c2ab + 0cdcb2c commit ea796fb

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

sendgrid/helpers/mail/email.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@
1717
__html_parser__ = HTMLParser()
1818
html_entity_decode = __html_parser__.unescape
1919

20+
try:
21+
basestring = basestring
22+
except NameError:
23+
# Define basestring when Python >= 3.0
24+
basestring = str
25+
2026

2127
class Email(object):
2228
"""An email address with an optional name."""
@@ -82,7 +88,7 @@ def name(self, value):
8288
:param value: Name associated with this email.
8389
:type value: string
8490
"""
85-
if not (value is None or isinstance(value, str)):
91+
if not (value is None or isinstance(value, basestring)):
8692
raise TypeError('name must be of type string.')
8793

8894
# Escape common CSV delimiters as workaround for

test/test_email.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,26 @@ def test_add_name(self):
1818

1919
self.assertEqual(email.name, name)
2020

21+
def test_add_unicode_name(self):
22+
name = u"SomeName"
23+
email = Email(name=name)
24+
25+
self.assertEqual(email.name, name)
26+
2127
def test_add_name_email(self):
2228
name = "SomeName"
2329
address = "test@example.com"
2430
email = Email(email=address, name=name)
2531
self.assertEqual(email.name, name)
2632
self.assertEqual(email.email, "test@example.com")
2733

34+
def test_add_unicode_name_email(self):
35+
name = u"SomeName"
36+
address = u"test@example.com"
37+
email = Email(email=address, name=name)
38+
self.assertEqual(email.name, name)
39+
self.assertEqual(email.email, u"test@example.com")
40+
2841
def test_add_rfc_function_finds_name_not_email(self):
2942
name = "SomeName"
3043
email = Email(name)
@@ -60,3 +73,10 @@ def test_add_name_with_comma(self):
6073
email.name = name
6174

6275
self.assertEqual(email.name, '"' + name + '"')
76+
77+
def test_add_unicode_name_with_comma(self):
78+
email = Email()
79+
name = u"Name, Some"
80+
email.name = name
81+
82+
self.assertEqual(email.name, u'"' + name + u'"')

0 commit comments

Comments
 (0)