Issue #19590: Use specific asserts in email tests.

This commit is contained in:
Serhiy Storchaka 2013-11-16 12:56:54 +02:00
commit a7a34a83f3
4 changed files with 92 additions and 107 deletions

View File

@ -59,8 +59,8 @@ class TestDefectsBase:
inner = msg.get_payload(0) inner = msg.get_payload(0)
self.assertTrue(hasattr(inner, 'defects')) self.assertTrue(hasattr(inner, 'defects'))
self.assertEqual(len(self.get_defects(inner)), 1) self.assertEqual(len(self.get_defects(inner)), 1)
self.assertTrue(isinstance(self.get_defects(inner)[0], self.assertIsInstance(self.get_defects(inner)[0],
errors.StartBoundaryNotFoundDefect)) errors.StartBoundaryNotFoundDefect)
def test_multipart_no_boundary(self): def test_multipart_no_boundary(self):
source = textwrap.dedent("""\ source = textwrap.dedent("""\
@ -84,12 +84,12 @@ class TestDefectsBase:
with self._raise_point(errors.NoBoundaryInMultipartDefect): with self._raise_point(errors.NoBoundaryInMultipartDefect):
msg = self._str_msg(source) msg = self._str_msg(source)
if self.raise_expected: return if self.raise_expected: return
self.assertTrue(isinstance(msg.get_payload(), str)) self.assertIsInstance(msg.get_payload(), str)
self.assertEqual(len(self.get_defects(msg)), 2) self.assertEqual(len(self.get_defects(msg)), 2)
self.assertTrue(isinstance(self.get_defects(msg)[0], self.assertIsInstance(self.get_defects(msg)[0],
errors.NoBoundaryInMultipartDefect)) errors.NoBoundaryInMultipartDefect)
self.assertTrue(isinstance(self.get_defects(msg)[1], self.assertIsInstance(self.get_defects(msg)[1],
errors.MultipartInvariantViolationDefect)) errors.MultipartInvariantViolationDefect)
multipart_msg = textwrap.dedent("""\ multipart_msg = textwrap.dedent("""\
Date: Wed, 14 Nov 2007 12:56:23 GMT Date: Wed, 14 Nov 2007 12:56:23 GMT
@ -153,10 +153,10 @@ class TestDefectsBase:
if self.raise_expected: return if self.raise_expected: return
self.assertTrue(hasattr(msg, 'defects')) self.assertTrue(hasattr(msg, 'defects'))
self.assertEqual(len(self.get_defects(msg)), 2) self.assertEqual(len(self.get_defects(msg)), 2)
self.assertTrue(isinstance(self.get_defects(msg)[0], self.assertIsInstance(self.get_defects(msg)[0],
errors.NoBoundaryInMultipartDefect)) errors.NoBoundaryInMultipartDefect)
self.assertTrue(isinstance(self.get_defects(msg)[1], self.assertIsInstance(self.get_defects(msg)[1],
errors.MultipartInvariantViolationDefect)) errors.MultipartInvariantViolationDefect)
def test_missing_start_boundary(self): def test_missing_start_boundary(self):
source = textwrap.dedent("""\ source = textwrap.dedent("""\
@ -193,8 +193,8 @@ class TestDefectsBase:
if self.raise_expected: return if self.raise_expected: return
bad = outer.get_payload(1).get_payload(0) bad = outer.get_payload(1).get_payload(0)
self.assertEqual(len(self.get_defects(bad)), 1) self.assertEqual(len(self.get_defects(bad)), 1)
self.assertTrue(isinstance(self.get_defects(bad)[0], self.assertIsInstance(self.get_defects(bad)[0],
errors.StartBoundaryNotFoundDefect)) errors.StartBoundaryNotFoundDefect)
def test_first_line_is_continuation_header(self): def test_first_line_is_continuation_header(self):
with self._raise_point(errors.FirstHeaderLineIsContinuationDefect): with self._raise_point(errors.FirstHeaderLineIsContinuationDefect):

View File

@ -241,12 +241,12 @@ class TestMessageAPI(TestEmailBase):
msg['From'] = 'Me' msg['From'] = 'Me'
msg['to'] = 'You' msg['to'] = 'You'
# Check for case insensitivity # Check for case insensitivity
self.assertTrue('from' in msg) self.assertIn('from', msg)
self.assertTrue('From' in msg) self.assertIn('From', msg)
self.assertTrue('FROM' in msg) self.assertIn('FROM', msg)
self.assertTrue('to' in msg) self.assertIn('to', msg)
self.assertTrue('To' in msg) self.assertIn('To', msg)
self.assertTrue('TO' in msg) self.assertIn('TO', msg)
def test_as_string(self): def test_as_string(self):
msg = self._msgobj('msg_01.txt') msg = self._msgobj('msg_01.txt')
@ -366,12 +366,11 @@ class TestMessageAPI(TestEmailBase):
self.assertEqual(msg.get_param('bar'), 'baz"foobar"baz') self.assertEqual(msg.get_param('bar'), 'baz"foobar"baz')
def test_field_containment(self): def test_field_containment(self):
unless = self.assertTrue
msg = email.message_from_string('Header: exists') msg = email.message_from_string('Header: exists')
unless('header' in msg) self.assertIn('header', msg)
unless('Header' in msg) self.assertIn('Header', msg)
unless('HEADER' in msg) self.assertIn('HEADER', msg)
self.assertFalse('headerx' in msg) self.assertNotIn('headerx', msg)
def test_set_param(self): def test_set_param(self):
eq = self.assertEqual eq = self.assertEqual
@ -1427,7 +1426,6 @@ class TestMIMEAudio(unittest.TestCase):
def test_add_header(self): def test_add_header(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
self._au.add_header('Content-Disposition', 'attachment', self._au.add_header('Content-Disposition', 'attachment',
filename='audiotest.au') filename='audiotest.au')
eq(self._au['content-disposition'], eq(self._au['content-disposition'],
@ -1438,12 +1436,12 @@ class TestMIMEAudio(unittest.TestCase):
'audiotest.au') 'audiotest.au')
missing = [] missing = []
eq(self._au.get_param('attachment', header='content-disposition'), '') eq(self._au.get_param('attachment', header='content-disposition'), '')
unless(self._au.get_param('foo', failobj=missing, self.assertIs(self._au.get_param('foo', failobj=missing,
header='content-disposition') is missing) header='content-disposition'), missing)
# Try some missing stuff # Try some missing stuff
unless(self._au.get_param('foobar', missing) is missing) self.assertIs(self._au.get_param('foobar', missing), missing)
unless(self._au.get_param('attachment', missing, self.assertIs(self._au.get_param('attachment', missing,
header='foobar') is missing) header='foobar'), missing)
@ -1468,7 +1466,6 @@ class TestMIMEImage(unittest.TestCase):
def test_add_header(self): def test_add_header(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
self._im.add_header('Content-Disposition', 'attachment', self._im.add_header('Content-Disposition', 'attachment',
filename='dingusfish.gif') filename='dingusfish.gif')
eq(self._im['content-disposition'], eq(self._im['content-disposition'],
@ -1479,12 +1476,12 @@ class TestMIMEImage(unittest.TestCase):
'dingusfish.gif') 'dingusfish.gif')
missing = [] missing = []
eq(self._im.get_param('attachment', header='content-disposition'), '') eq(self._im.get_param('attachment', header='content-disposition'), '')
unless(self._im.get_param('foo', failobj=missing, self.assertIs(self._im.get_param('foo', failobj=missing,
header='content-disposition') is missing) header='content-disposition'), missing)
# Try some missing stuff # Try some missing stuff
unless(self._im.get_param('foobar', missing) is missing) self.assertIs(self._im.get_param('foobar', missing), missing)
unless(self._im.get_param('attachment', missing, self.assertIs(self._im.get_param('attachment', missing,
header='foobar') is missing) header='foobar'), missing)
@ -1575,17 +1572,16 @@ class TestMIMEText(unittest.TestCase):
def test_types(self): def test_types(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
eq(self._msg.get_content_type(), 'text/plain') eq(self._msg.get_content_type(), 'text/plain')
eq(self._msg.get_param('charset'), 'us-ascii') eq(self._msg.get_param('charset'), 'us-ascii')
missing = [] missing = []
unless(self._msg.get_param('foobar', missing) is missing) self.assertIs(self._msg.get_param('foobar', missing), missing)
unless(self._msg.get_param('charset', missing, header='foobar') self.assertIs(self._msg.get_param('charset', missing, header='foobar'),
is missing) missing)
def test_payload(self): def test_payload(self):
self.assertEqual(self._msg.get_payload(), 'hello there') self.assertEqual(self._msg.get_payload(), 'hello there')
self.assertTrue(not self._msg.is_multipart()) self.assertFalse(self._msg.is_multipart())
def test_charset(self): def test_charset(self):
eq = self.assertEqual eq = self.assertEqual
@ -1604,7 +1600,7 @@ class TestMIMEText(unittest.TestCase):
msg = MIMEText('hello there') msg = MIMEText('hello there')
eq(msg.get_charset(), 'us-ascii') eq(msg.get_charset(), 'us-ascii')
eq(msg['content-type'], 'text/plain; charset="us-ascii"') eq(msg['content-type'], 'text/plain; charset="us-ascii"')
self.assertTrue('hello there' in msg.as_string()) self.assertIn('hello there', msg.as_string())
def test_utf8_input(self): def test_utf8_input(self):
teststr = '\u043a\u0438\u0440\u0438\u043b\u0438\u0446\u0430' teststr = '\u043a\u0438\u0440\u0438\u043b\u0438\u0446\u0430'
@ -1663,21 +1659,20 @@ This is the dingus fish.
def test_hierarchy(self): def test_hierarchy(self):
# convenience # convenience
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
raises = self.assertRaises raises = self.assertRaises
# tests # tests
m = self._msg m = self._msg
unless(m.is_multipart()) self.assertTrue(m.is_multipart())
eq(m.get_content_type(), 'multipart/mixed') eq(m.get_content_type(), 'multipart/mixed')
eq(len(m.get_payload()), 2) eq(len(m.get_payload()), 2)
raises(IndexError, m.get_payload, 2) raises(IndexError, m.get_payload, 2)
m0 = m.get_payload(0) m0 = m.get_payload(0)
m1 = m.get_payload(1) m1 = m.get_payload(1)
unless(m0 is self._txt) self.assertIs(m0, self._txt)
unless(m1 is self._im) self.assertIs(m1, self._im)
eq(m.get_payload(), [m0, m1]) eq(m.get_payload(), [m0, m1])
unless(not m0.is_multipart()) self.assertFalse(m0.is_multipart())
unless(not m1.is_multipart()) self.assertFalse(m1.is_multipart())
def test_empty_multipart_idempotent(self): def test_empty_multipart_idempotent(self):
text = """\ text = """\
@ -2009,25 +2004,23 @@ class TestNonConformant(TestEmailBase):
# test_defect_handling # test_defect_handling
def test_same_boundary_inner_outer(self): def test_same_boundary_inner_outer(self):
unless = self.assertTrue
msg = self._msgobj('msg_15.txt') msg = self._msgobj('msg_15.txt')
# XXX We can probably eventually do better # XXX We can probably eventually do better
inner = msg.get_payload(0) inner = msg.get_payload(0)
unless(hasattr(inner, 'defects')) self.assertTrue(hasattr(inner, 'defects'))
self.assertEqual(len(inner.defects), 1) self.assertEqual(len(inner.defects), 1)
unless(isinstance(inner.defects[0], self.assertIsInstance(inner.defects[0],
errors.StartBoundaryNotFoundDefect)) errors.StartBoundaryNotFoundDefect)
# test_defect_handling # test_defect_handling
def test_multipart_no_boundary(self): def test_multipart_no_boundary(self):
unless = self.assertTrue
msg = self._msgobj('msg_25.txt') msg = self._msgobj('msg_25.txt')
unless(isinstance(msg.get_payload(), str)) self.assertIsInstance(msg.get_payload(), str)
self.assertEqual(len(msg.defects), 2) self.assertEqual(len(msg.defects), 2)
unless(isinstance(msg.defects[0], self.assertIsInstance(msg.defects[0],
errors.NoBoundaryInMultipartDefect)) errors.NoBoundaryInMultipartDefect)
unless(isinstance(msg.defects[1], self.assertIsInstance(msg.defects[1],
errors.MultipartInvariantViolationDefect)) errors.MultipartInvariantViolationDefect)
multipart_msg = textwrap.dedent("""\ multipart_msg = textwrap.dedent("""\
Date: Wed, 14 Nov 2007 12:56:23 GMT Date: Wed, 14 Nov 2007 12:56:23 GMT
@ -2125,14 +2118,13 @@ counter to RFC 2822, there's no separating newline here
# test_defect_handling # test_defect_handling
def test_lying_multipart(self): def test_lying_multipart(self):
unless = self.assertTrue
msg = self._msgobj('msg_41.txt') msg = self._msgobj('msg_41.txt')
unless(hasattr(msg, 'defects')) self.assertTrue(hasattr(msg, 'defects'))
self.assertEqual(len(msg.defects), 2) self.assertEqual(len(msg.defects), 2)
unless(isinstance(msg.defects[0], self.assertIsInstance(msg.defects[0],
errors.NoBoundaryInMultipartDefect)) errors.NoBoundaryInMultipartDefect)
unless(isinstance(msg.defects[1], self.assertIsInstance(msg.defects[1],
errors.MultipartInvariantViolationDefect)) errors.MultipartInvariantViolationDefect)
# test_defect_handling # test_defect_handling
def test_missing_start_boundary(self): def test_missing_start_boundary(self):
@ -2147,8 +2139,8 @@ counter to RFC 2822, there's no separating newline here
# [*] This message is missing its start boundary # [*] This message is missing its start boundary
bad = outer.get_payload(1).get_payload(0) bad = outer.get_payload(1).get_payload(0)
self.assertEqual(len(bad.defects), 1) self.assertEqual(len(bad.defects), 1)
self.assertTrue(isinstance(bad.defects[0], self.assertIsInstance(bad.defects[0],
errors.StartBoundaryNotFoundDefect)) errors.StartBoundaryNotFoundDefect)
# test_defect_handling # test_defect_handling
def test_first_line_is_continuation_header(self): def test_first_line_is_continuation_header(self):
@ -2315,17 +2307,16 @@ class TestMIMEMessage(TestEmailBase):
def test_valid_argument(self): def test_valid_argument(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
subject = 'A sub-message' subject = 'A sub-message'
m = Message() m = Message()
m['Subject'] = subject m['Subject'] = subject
r = MIMEMessage(m) r = MIMEMessage(m)
eq(r.get_content_type(), 'message/rfc822') eq(r.get_content_type(), 'message/rfc822')
payload = r.get_payload() payload = r.get_payload()
unless(isinstance(payload, list)) self.assertIsInstance(payload, list)
eq(len(payload), 1) eq(len(payload), 1)
subpart = payload[0] subpart = payload[0]
unless(subpart is m) self.assertIs(subpart, m)
eq(subpart['subject'], subject) eq(subpart['subject'], subject)
def test_bad_multipart(self): def test_bad_multipart(self):
@ -2358,24 +2349,22 @@ Here is the body of the message.
def test_parse_message_rfc822(self): def test_parse_message_rfc822(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
msg = self._msgobj('msg_11.txt') msg = self._msgobj('msg_11.txt')
eq(msg.get_content_type(), 'message/rfc822') eq(msg.get_content_type(), 'message/rfc822')
payload = msg.get_payload() payload = msg.get_payload()
unless(isinstance(payload, list)) self.assertIsInstance(payload, list)
eq(len(payload), 1) eq(len(payload), 1)
submsg = payload[0] submsg = payload[0]
self.assertTrue(isinstance(submsg, Message)) self.assertIsInstance(submsg, Message)
eq(submsg['subject'], 'An enclosed message') eq(submsg['subject'], 'An enclosed message')
eq(submsg.get_payload(), 'Here is the body of the message.\n') eq(submsg.get_payload(), 'Here is the body of the message.\n')
def test_dsn(self): def test_dsn(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
# msg 16 is a Delivery Status Notification, see RFC 1894 # msg 16 is a Delivery Status Notification, see RFC 1894
msg = self._msgobj('msg_16.txt') msg = self._msgobj('msg_16.txt')
eq(msg.get_content_type(), 'multipart/report') eq(msg.get_content_type(), 'multipart/report')
unless(msg.is_multipart()) self.assertTrue(msg.is_multipart())
eq(len(msg.get_payload()), 3) eq(len(msg.get_payload()), 3)
# Subpart 1 is a text/plain, human readable section # Subpart 1 is a text/plain, human readable section
subpart = msg.get_payload(0) subpart = msg.get_payload(0)
@ -2404,13 +2393,13 @@ Your message cannot be delivered to the following recipients:
# message/delivery-status should treat each block as a bunch of # message/delivery-status should treat each block as a bunch of
# headers, i.e. a bunch of Message objects. # headers, i.e. a bunch of Message objects.
dsn1 = subpart.get_payload(0) dsn1 = subpart.get_payload(0)
unless(isinstance(dsn1, Message)) self.assertIsInstance(dsn1, Message)
eq(dsn1['original-envelope-id'], '0GK500B4HD0888@cougar.noc.ucla.edu') eq(dsn1['original-envelope-id'], '0GK500B4HD0888@cougar.noc.ucla.edu')
eq(dsn1.get_param('dns', header='reporting-mta'), '') eq(dsn1.get_param('dns', header='reporting-mta'), '')
# Try a missing one <wink> # Try a missing one <wink>
eq(dsn1.get_param('nsd', header='reporting-mta'), None) eq(dsn1.get_param('nsd', header='reporting-mta'), None)
dsn2 = subpart.get_payload(1) dsn2 = subpart.get_payload(1)
unless(isinstance(dsn2, Message)) self.assertIsInstance(dsn2, Message)
eq(dsn2['action'], 'failed') eq(dsn2['action'], 'failed')
eq(dsn2.get_params(header='original-recipient'), eq(dsn2.get_params(header='original-recipient'),
[('rfc822', ''), ('jangel1@cougar.noc.ucla.edu', '')]) [('rfc822', ''), ('jangel1@cougar.noc.ucla.edu', '')])
@ -2419,10 +2408,10 @@ Your message cannot be delivered to the following recipients:
subpart = msg.get_payload(2) subpart = msg.get_payload(2)
eq(subpart.get_content_type(), 'message/rfc822') eq(subpart.get_content_type(), 'message/rfc822')
payload = subpart.get_payload() payload = subpart.get_payload()
unless(isinstance(payload, list)) self.assertIsInstance(payload, list)
eq(len(payload), 1) eq(len(payload), 1)
subsubpart = payload[0] subsubpart = payload[0]
unless(isinstance(subsubpart, Message)) self.assertIsInstance(subsubpart, Message)
eq(subsubpart.get_content_type(), 'text/plain') eq(subsubpart.get_content_type(), 'text/plain')
eq(subsubpart['message-id'], eq(subsubpart['message-id'],
'<002001c144a6$8752e060$56104586@oxy.edu>') '<002001c144a6$8752e060$56104586@oxy.edu>')
@ -2720,7 +2709,6 @@ class TestIdempotent(TestEmailBase):
def test_content_type(self): def test_content_type(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
# Get a message object and reset the seek pointer for other tests # Get a message object and reset the seek pointer for other tests
msg, text = self._msgobj('msg_05.txt') msg, text = self._msgobj('msg_05.txt')
eq(msg.get_content_type(), 'multipart/report') eq(msg.get_content_type(), 'multipart/report')
@ -2742,29 +2730,28 @@ class TestIdempotent(TestEmailBase):
eq(msg2.get_payload(), 'Yadda yadda yadda' + self.linesep) eq(msg2.get_payload(), 'Yadda yadda yadda' + self.linesep)
msg3 = msg.get_payload(2) msg3 = msg.get_payload(2)
eq(msg3.get_content_type(), 'message/rfc822') eq(msg3.get_content_type(), 'message/rfc822')
self.assertTrue(isinstance(msg3, Message)) self.assertIsInstance(msg3, Message)
payload = msg3.get_payload() payload = msg3.get_payload()
unless(isinstance(payload, list)) self.assertIsInstance(payload, list)
eq(len(payload), 1) eq(len(payload), 1)
msg4 = payload[0] msg4 = payload[0]
unless(isinstance(msg4, Message)) self.assertIsInstance(msg4, Message)
eq(msg4.get_payload(), 'Yadda yadda yadda' + self.linesep) eq(msg4.get_payload(), 'Yadda yadda yadda' + self.linesep)
def test_parser(self): def test_parser(self):
eq = self.assertEqual eq = self.assertEqual
unless = self.assertTrue
msg, text = self._msgobj('msg_06.txt') msg, text = self._msgobj('msg_06.txt')
# Check some of the outer headers # Check some of the outer headers
eq(msg.get_content_type(), 'message/rfc822') eq(msg.get_content_type(), 'message/rfc822')
# Make sure the payload is a list of exactly one sub-Message, and that # Make sure the payload is a list of exactly one sub-Message, and that
# that submessage has a type of text/plain # that submessage has a type of text/plain
payload = msg.get_payload() payload = msg.get_payload()
unless(isinstance(payload, list)) self.assertIsInstance(payload, list)
eq(len(payload), 1) eq(len(payload), 1)
msg1 = payload[0] msg1 = payload[0]
self.assertTrue(isinstance(msg1, Message)) self.assertIsInstance(msg1, Message)
eq(msg1.get_content_type(), 'text/plain') eq(msg1.get_content_type(), 'text/plain')
self.assertTrue(isinstance(msg1.get_payload(), str)) self.assertIsInstance(msg1.get_payload(), str)
eq(msg1.get_payload(), self.linesep) eq(msg1.get_payload(), self.linesep)
@ -2795,7 +2782,6 @@ class TestMiscellaneous(TestEmailBase):
self.assertEqual(text, s.getvalue()) self.assertEqual(text, s.getvalue())
def test_message_from_string_with_class(self): def test_message_from_string_with_class(self):
unless = self.assertTrue
with openfile('msg_01.txt') as fp: with openfile('msg_01.txt') as fp:
text = fp.read() text = fp.read()
@ -2804,35 +2790,34 @@ class TestMiscellaneous(TestEmailBase):
pass pass
msg = email.message_from_string(text, MyMessage) msg = email.message_from_string(text, MyMessage)
unless(isinstance(msg, MyMessage)) self.assertIsInstance(msg, MyMessage)
# Try something more complicated # Try something more complicated
with openfile('msg_02.txt') as fp: with openfile('msg_02.txt') as fp:
text = fp.read() text = fp.read()
msg = email.message_from_string(text, MyMessage) msg = email.message_from_string(text, MyMessage)
for subpart in msg.walk(): for subpart in msg.walk():
unless(isinstance(subpart, MyMessage)) self.assertIsInstance(subpart, MyMessage)
def test_message_from_file_with_class(self): def test_message_from_file_with_class(self):
unless = self.assertTrue
# Create a subclass # Create a subclass
class MyMessage(Message): class MyMessage(Message):
pass pass
with openfile('msg_01.txt') as fp: with openfile('msg_01.txt') as fp:
msg = email.message_from_file(fp, MyMessage) msg = email.message_from_file(fp, MyMessage)
unless(isinstance(msg, MyMessage)) self.assertIsInstance(msg, MyMessage)
# Try something more complicated # Try something more complicated
with openfile('msg_02.txt') as fp: with openfile('msg_02.txt') as fp:
msg = email.message_from_file(fp, MyMessage) msg = email.message_from_file(fp, MyMessage)
for subpart in msg.walk(): for subpart in msg.walk():
unless(isinstance(subpart, MyMessage)) self.assertIsInstance(subpart, MyMessage)
def test_custom_message_does_not_require_arguments(self): def test_custom_message_does_not_require_arguments(self):
class MyMessage(Message): class MyMessage(Message):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
msg = self._str_msg("Subject: test\n\ntest", MyMessage) msg = self._str_msg("Subject: test\n\ntest", MyMessage)
self.assertTrue(isinstance(msg, MyMessage)) self.assertIsInstance(msg, MyMessage)
def test__all__(self): def test__all__(self):
module = __import__('email') module = __import__('email')
@ -3322,9 +3307,9 @@ Do you like this message?
break break
om.append(ol) om.append(ol)
n1 += 1 n1 += 1
self.assertTrue(n == n1) self.assertEqual(n, n1)
self.assertTrue(len(om) == nt) self.assertEqual(len(om), nt)
self.assertTrue(''.join([il for il, n in imt]) == ''.join(om)) self.assertEqual(''.join([il for il, n in imt]), ''.join(om))
@ -3339,7 +3324,7 @@ class TestParsers(TestEmailBase):
eq(msg['to'], 'ppp@zzz.org') eq(msg['to'], 'ppp@zzz.org')
eq(msg.get_content_type(), 'multipart/mixed') eq(msg.get_content_type(), 'multipart/mixed')
self.assertFalse(msg.is_multipart()) self.assertFalse(msg.is_multipart())
self.assertTrue(isinstance(msg.get_payload(), str)) self.assertIsInstance(msg.get_payload(), str)
def test_bytes_header_parser(self): def test_bytes_header_parser(self):
eq = self.assertEqual eq = self.assertEqual
@ -3350,8 +3335,8 @@ class TestParsers(TestEmailBase):
eq(msg['to'], 'ppp@zzz.org') eq(msg['to'], 'ppp@zzz.org')
eq(msg.get_content_type(), 'multipart/mixed') eq(msg.get_content_type(), 'multipart/mixed')
self.assertFalse(msg.is_multipart()) self.assertFalse(msg.is_multipart())
self.assertTrue(isinstance(msg.get_payload(), str)) self.assertIsInstance(msg.get_payload(), str)
self.assertTrue(isinstance(msg.get_payload(decode=True), bytes)) self.assertIsInstance(msg.get_payload(decode=True), bytes)
def test_whitespace_continuation(self): def test_whitespace_continuation(self):
eq = self.assertEqual eq = self.assertEqual
@ -4392,7 +4377,7 @@ class TestHeader(TestEmailBase):
h = Header("I am the very model of a modern Major-General; I've information vegetable, animal, and mineral; I know the kings of England, and I quote the fights historical from Marathon to Waterloo, in order categorical; I'm very well acquainted, too, with matters mathematical; I understand equations, both the simple and quadratical; about binomial theorem I'm teeming with a lot o' news, with many cheerful facts about the square of the hypotenuse.", h = Header("I am the very model of a modern Major-General; I've information vegetable, animal, and mineral; I know the kings of England, and I quote the fights historical from Marathon to Waterloo, in order categorical; I'm very well acquainted, too, with matters mathematical; I understand equations, both the simple and quadratical; about binomial theorem I'm teeming with a lot o' news, with many cheerful facts about the square of the hypotenuse.",
maxlinelen=76) maxlinelen=76)
for l in h.encode(splitchars=' ').split('\n '): for l in h.encode(splitchars=' ').split('\n '):
self.assertTrue(len(l) <= 76) self.assertLessEqual(len(l), 76)
def test_multilingual(self): def test_multilingual(self):
eq = self.ndiffAssertEqual eq = self.ndiffAssertEqual
@ -4861,7 +4846,7 @@ Content-Type: text/html; NAME*0=file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOC
''' '''
msg = email.message_from_string(m) msg = email.message_from_string(m)
param = msg.get_param('NAME') param = msg.get_param('NAME')
self.assertFalse(isinstance(param, tuple)) self.assertNotIsInstance(param, tuple)
self.assertEqual( self.assertEqual(
param, param,
'file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEMP_nsmail.htm') 'file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEMP_nsmail.htm')
@ -5020,7 +5005,7 @@ Content-Type: application/x-foo; name*0=\"Frank's\"; name*1=\" Document\"
""" """
msg = email.message_from_string(m) msg = email.message_from_string(m)
param = msg.get_param('name') param = msg.get_param('name')
self.assertFalse(isinstance(param, tuple)) self.assertNotIsInstance(param, tuple)
self.assertEqual(param, "Frank's Document") self.assertEqual(param, "Frank's Document")
# test_headerregistry.TestContentTypeHeader.rfc2231_single_quote_in_value_with_charset_and_lang # test_headerregistry.TestContentTypeHeader.rfc2231_single_quote_in_value_with_charset_and_lang
@ -5046,7 +5031,7 @@ Content-Type: application/x-foo;
""" """
msg = email.message_from_string(m) msg = email.message_from_string(m)
param = msg.get_param('name') param = msg.get_param('name')
self.assertFalse(isinstance(param, tuple)) self.assertNotIsInstance(param, tuple)
self.assertEqual(param, "us-ascii'en-us'Frank's Document") self.assertEqual(param, "us-ascii'en-us'Frank's Document")
# test_headerregistry.TestContentTypeHeader.rfc2231_single_quotes_inside_quotes # test_headerregistry.TestContentTypeHeader.rfc2231_single_quotes_inside_quotes

View File

@ -18,7 +18,7 @@ class TestCustomMessage(TestEmailBase):
msg = email.message_from_string("Subject: bogus\n\nmsg\n", msg = email.message_from_string("Subject: bogus\n\nmsg\n",
self.MyMessage, self.MyMessage,
policy=self.MyPolicy) policy=self.MyPolicy)
self.assertTrue(isinstance(msg, self.MyMessage)) self.assertIsInstance(msg, self.MyMessage)
self.assertIs(msg.check_policy, self.MyPolicy) self.assertIs(msg.check_policy, self.MyPolicy)
def test_custom_message_gets_policy_if_possible_from_file(self): def test_custom_message_gets_policy_if_possible_from_file(self):
@ -26,7 +26,7 @@ class TestCustomMessage(TestEmailBase):
msg = email.message_from_file(source_file, msg = email.message_from_file(source_file,
self.MyMessage, self.MyMessage,
policy=self.MyPolicy) policy=self.MyPolicy)
self.assertTrue(isinstance(msg, self.MyMessage)) self.assertIsInstance(msg, self.MyMessage)
self.assertIs(msg.check_policy, self.MyPolicy) self.assertIs(msg.check_policy, self.MyPolicy)
# XXX add tests for other functions that take Message arg. # XXX add tests for other functions that take Message arg.

View File

@ -54,12 +54,12 @@ class LocaltimeTests(unittest.TestCase):
def test_localtime_is_tz_aware_daylight_true(self): def test_localtime_is_tz_aware_daylight_true(self):
test.support.patch(self, time, 'daylight', True) test.support.patch(self, time, 'daylight', True)
t = utils.localtime() t = utils.localtime()
self.assertIsNot(t.tzinfo, None) self.assertIsNotNone(t.tzinfo)
def test_localtime_is_tz_aware_daylight_false(self): def test_localtime_is_tz_aware_daylight_false(self):
test.support.patch(self, time, 'daylight', False) test.support.patch(self, time, 'daylight', False)
t = utils.localtime() t = utils.localtime()
self.assertIsNot(t.tzinfo, None) self.assertIsNotNone(t.tzinfo)
def test_localtime_daylight_true_dst_false(self): def test_localtime_daylight_true_dst_false(self):
test.support.patch(self, time, 'daylight', True) test.support.patch(self, time, 'daylight', True)