Merged revisions 81739 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81739 | michael.foord | 2010-06-05 13:10:52 +0100 (Sat, 05 Jun 2010) | 1 line

  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:
Michael Foord 2010-06-05 12:17:02 +00:00
parent 8f3d0fa443
commit 085dfd3ad5
2 changed files with 40 additions and 14 deletions

View file

@ -592,20 +592,38 @@ 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):