Skip to content

Commit 6a42111

Browse files
author
Ivo Bellin Salarin
committed
fix: mirror the existing test pattern
1 parent 8e44cc3 commit 6a42111

2 files changed

Lines changed: 33 additions & 50 deletions

File tree

Lib/test/test_email/test_defect_handling.py

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,6 @@ class TestDefectsBase:
1515
def _raise_point(self, defect):
1616
yield
1717

18-
def get_defects(self, obj):
19-
return obj.defects
20-
21-
def check_defect(self, defect, string):
22-
msg = None
23-
with self._raise_point(defect):
24-
msg = self._str_msg(string)
25-
self.assertEqual(len(self.get_defects(msg)), 1)
26-
self.assertDefectsEqual(self.get_defects(msg), [defect])
27-
return msg
28-
2918
def test_same_boundary_inner_outer(self):
3019
source = textwrap.dedent("""\
3120
Subject: XX
@@ -310,37 +299,48 @@ def test_missing_ending_boundary(self):
310299
[errors.CloseBoundaryNotFoundDefect])
311300

312301
def test_line_beginning_colon(self):
313-
msg = self.check_defect(errors.InvalidHeaderDefect,
314-
'Subject: Dummy subject\r\n'
315-
': faulty header line\r\n'
316-
'\r\n'
317-
'body\r\n'
302+
string = (
303+
"Subject: Dummy subject\r\n: faulty header line\r\n\r\nbody\r\n"
318304
)
319-
if msg:
320-
self.assertEqual(msg.items(), [('Subject', 'Dummy subject')])
321-
self.assertEqual(msg.get_payload(), 'body\r\n')
305+
306+
with self._raise_point(errors.InvalidHeaderDefect):
307+
msg = self._str_msg(string)
308+
self.assertEqual(len(self.get_defects(msg)), 1)
309+
self.assertDefectsEqual(
310+
self.get_defects(msg), [errors.InvalidHeaderDefect]
311+
)
312+
313+
if msg:
314+
self.assertEqual(msg.items(), [("Subject", "Dummy subject")])
315+
self.assertEqual(msg.get_payload(), "body\r\n")
322316

323317
def test_misplaced_envelope(self):
324-
msg = self.check_defect(errors.MisplacedEnvelopeHeaderDefect,
325-
'Subject: Dummy subject\r\n'
326-
'From wtf\r\n'
327-
'To: abc\r\n'
328-
'\r\n'
329-
'body\r\n'
318+
string = (
319+
"Subject: Dummy subject\r\nFrom wtf\r\nTo: abc\r\n\r\nbody\r\n"
330320
)
331-
if msg:
332-
headers = [('Subject', 'Dummy subject'), ('To', 'abc')]
333-
self.assertEqual(msg.items(), headers)
334-
self.assertEqual(msg.get_payload(), 'body\r\n')
321+
with self._raise_point(errors.MisplacedEnvelopeHeaderDefect):
322+
msg = self._str_msg(string)
323+
self.assertEqual(len(self.get_defects(msg)), 1)
324+
self.assertDefectsEqual(
325+
self.get_defects(msg), [errors.MisplacedEnvelopeHeaderDefect]
326+
)
327+
328+
if msg:
329+
headers = [("Subject", "Dummy subject"), ("To", "abc")]
330+
self.assertEqual(msg.items(), headers)
331+
self.assertEqual(msg.get_payload(), "body\r\n")
332+
335333

336334

337335
class TestCompat32(TestDefectsBase, TestEmailBase):
338336

339337
policy = policy.compat32
340338

339+
def get_defects(self, obj):
340+
return obj.defects
341+
341342

342343
class TestDefectDetection(TestDefectsBase, TestEmailBase):
343-
pass
344344

345345
def get_defects(self, obj):
346346
return obj.defects
@@ -371,6 +371,9 @@ def _raise_point(self, defect):
371371
with self.assertRaises(defect):
372372
yield
373373

374+
def get_defects(self, obj):
375+
return obj.defects
376+
374377

375378
if __name__ == '__main__':
376379
unittest.main()

Lib/test/test_email/test_email.py

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2241,26 +2241,6 @@ def test_parse_missing_minor_type(self):
22412241
eq(msg.get_content_maintype(), 'text')
22422242
eq(msg.get_content_subtype(), 'plain')
22432243

2244-
# test_defect_handling
2245-
def test_same_boundary_inner_outer(self):
2246-
msg = self._msgobj('msg_15.txt')
2247-
# XXX We can probably eventually do better
2248-
inner = msg.get_payload(0)
2249-
self.assertHasAttr(inner, 'defects')
2250-
self.assertEqual(len(inner.defects), 1)
2251-
self.assertIsInstance(inner.defects[0],
2252-
errors.StartBoundaryNotFoundDefect)
2253-
2254-
# test_defect_handling
2255-
def test_multipart_no_boundary(self):
2256-
msg = self._msgobj('msg_25.txt')
2257-
self.assertIsInstance(msg.get_payload(), str)
2258-
self.assertEqual(len(msg.defects), 2)
2259-
self.assertIsInstance(msg.defects[0],
2260-
errors.NoBoundaryInMultipartDefect)
2261-
self.assertIsInstance(msg.defects[1],
2262-
errors.MultipartInvariantViolationDefect)
2263-
22642244
# test_headerregistry.TestContentTypeHeader invalid_1 and invalid_2.
22652245
def test_invalid_content_type(self):
22662246
eq = self.assertEqual

0 commit comments

Comments
 (0)