mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Removed the new max_diff argument to assertSequenceEqual. All unittest.TestCase assert methods that use difflib to produce failure messages now truncate overly long messages. New class attribute unittest.TestCase.maxDiff to configure this if necessary. Issue 8351.
This commit is contained in:
parent
23f0d6b57b
commit
e37d75fce2
2 changed files with 35 additions and 13 deletions
|
@ -591,20 +591,37 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing):
|
|||
self.assertRaises(self.failureException, self.assertDictEqual, 1, 1)
|
||||
|
||||
def testAssertSequenceEqualMaxDiff(self):
|
||||
self.assertEqual(self.maxDiff, 80*8)
|
||||
seq1 = 'a' + 'x' * 80**2
|
||||
seq2 = 'b' + 'x' * 80**2
|
||||
diff = '\n'.join(difflib.ndiff(pprint.pformat(seq1).splitlines(),
|
||||
pprint.pformat(seq2).splitlines()))
|
||||
|
||||
self.maxDiff = len(diff)//2
|
||||
try:
|
||||
self.assertSequenceEqual(seq1, seq2, max_diff=len(diff)/2)
|
||||
except AssertionError as e:
|
||||
self.assertSequenceEqual(seq1, seq2)
|
||||
except self.failureException as e:
|
||||
msg = e.args[0]
|
||||
else:
|
||||
self.fail('assertSequenceEqual did not fail.')
|
||||
self.assertTrue(len(msg) < len(diff))
|
||||
|
||||
self.maxDiff = len(diff) * 2
|
||||
try:
|
||||
self.assertSequenceEqual(seq1, seq2, max_diff=len(diff)*2)
|
||||
except AssertionError as e:
|
||||
self.assertSequenceEqual(seq1, seq2)
|
||||
except self.failureException as e:
|
||||
msg = e.args[0]
|
||||
else:
|
||||
self.fail('assertSequenceEqual did not fail.')
|
||||
self.assertTrue(len(msg) > len(diff))
|
||||
|
||||
self.maxDiff = None
|
||||
try:
|
||||
self.assertSequenceEqual(seq1, seq2)
|
||||
except self.failureException as e:
|
||||
msg = e.args[0]
|
||||
else:
|
||||
self.fail('assertSequenceEqual did not fail.')
|
||||
self.assertTrue(len(msg) > len(diff))
|
||||
|
||||
def testAssertItemsEqual(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue