Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c53b29e

Browse files
committed
ndiffAssertEqual(): Stringify the arguments before running
.splitlines() on them, since they may be Header instances. test_multilingual(), test_header_ctor_default_args(): New tests of make_header() and that Header can take all default arguments.
1 parent 8da39aa commit c53b29e

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

Lib/test/test_email.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import email
1515

1616
from email.Charset import Charset
17-
from email.Header import Header, decode_header
17+
from email.Header import Header, decode_header, make_header
1818
from email.Parser import Parser, HeaderParser
1919
from email.Generator import Generator, DecodedGenerator
2020
from email.Message import Message
@@ -57,7 +57,9 @@ class TestEmailBase(unittest.TestCase):
5757
def ndiffAssertEqual(self, first, second):
5858
"""Like failUnlessEqual except use ndiff for readable output."""
5959
if first <> second:
60-
diff = difflib.ndiff(first.splitlines(), second.splitlines())
60+
sfirst = str(first)
61+
ssecond = str(second)
62+
diff = difflib.ndiff(sfirst.splitlines(), ssecond.splitlines())
6163
fp = StringIO()
6264
print >> fp, NL, NL.join(diff)
6365
raise self.failureException, fp.getvalue()
@@ -1026,7 +1028,7 @@ def test_parse_message_rfc822(self):
10261028
def test_dsn(self):
10271029
eq = self.assertEqual
10281030
unless = self.failUnless
1029-
# msg 16 is a Delivery Status Notification, see RFC XXXX
1031+
# msg 16 is a Delivery Status Notification, see RFC 1894
10301032
msg = self._msgobj('msg_16.txt')
10311033
eq(msg.get_type(), 'multipart/report')
10321034
unless(msg.is_multipart())
@@ -1878,7 +1880,7 @@ def test_long(self):
18781880
self.failUnless(len(l) <= 76)
18791881

18801882
def test_multilingual(self):
1881-
eq = self.assertEqual
1883+
eq = self.ndiffAssertEqual
18821884
g = Charset("iso-8859-1")
18831885
cz = Charset("iso-8859-2")
18841886
utf8 = Charset("utf-8")
@@ -1929,6 +1931,16 @@ def test_multilingual(self):
19291931
'und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt '
19301932
'gersput.\xe3\x80\x8d\xe3\x81\xa8\xe8\xa8\x80\xe3\x81\xa3\xe3\x81'
19311933
'\xa6\xe3\x81\x84\xe3\x81\xbe\xe3\x81\x99\xe3\x80\x82')
1934+
# Test make_header()
1935+
newh = make_header(decode_header(enc))
1936+
eq(newh, enc)
1937+
1938+
def test_header_ctor_default_args(self):
1939+
eq = self.ndiffAssertEqual
1940+
h = Header()
1941+
eq(h, '')
1942+
h.append('foo', Charset('iso-8859-1'))
1943+
eq(h, '=?iso-8859-1?q?foo?=')
19321944

19331945
def test_explicit_maxlinelen(self):
19341946
eq = self.ndiffAssertEqual

0 commit comments

Comments
 (0)