Kaydet (Commit) a46ed118 authored tarafından R David Murray's avatar R David Murray

Move assertBytesEqual to base test class, improve it, and hook into assertEqual

üst eb50e51a
...@@ -25,6 +25,10 @@ def openfile(filename, *args, **kws): ...@@ -25,6 +25,10 @@ def openfile(filename, *args, **kws):
# Base test class # Base test class
class TestEmailBase(unittest.TestCase): class TestEmailBase(unittest.TestCase):
def __init__(self, *args, **kw):
super().__init__(*args, **kw)
self.addTypeEqualityFunc(bytes, self.assertBytesEqual)
def ndiffAssertEqual(self, first, second): def ndiffAssertEqual(self, first, second):
"""Like assertEqual except use ndiff for readable output.""" """Like assertEqual except use ndiff for readable output."""
if first != second: if first != second:
...@@ -38,3 +42,10 @@ class TestEmailBase(unittest.TestCase): ...@@ -38,3 +42,10 @@ class TestEmailBase(unittest.TestCase):
def _msgobj(self, filename): def _msgobj(self, filename):
with openfile(filename) as fp: with openfile(filename) as fp:
return email.message_from_file(fp) return email.message_from_file(fp)
def _bytes_repr(self, b):
return [repr(x) for x in b.splitlines(True)]
def assertBytesEqual(self, first, second, msg):
"""Our byte strings are really encoded strings; improve diff output"""
self.assertEqual(self._bytes_repr(first), self._bytes_repr(second))
...@@ -3161,12 +3161,7 @@ class BaseTestBytesGeneratorIdempotent: ...@@ -3161,12 +3161,7 @@ class BaseTestBytesGeneratorIdempotent:
b = BytesIO() b = BytesIO()
g = email.generator.BytesGenerator(b, maxheaderlen=0) g = email.generator.BytesGenerator(b, maxheaderlen=0)
g.flatten(msg, unixfrom=unixfrom, linesep=self.linesep) g.flatten(msg, unixfrom=unixfrom, linesep=self.linesep)
self.assertByteStringsEqual(data, b.getvalue()) self.assertEqual(data, b.getvalue())
def assertByteStringsEqual(self, str1, str2):
# Not using self.blinesep here is intentional. This way the output
# is more useful when the failure results in mixed line endings.
self.assertListEqual(str1.split(b'\n'), str2.split(b'\n'))
class TestBytesGeneratorIdempotentNL(BaseTestBytesGeneratorIdempotent, class TestBytesGeneratorIdempotentNL(BaseTestBytesGeneratorIdempotent,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment