diff options
author | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-06-05 11:23:51 (GMT) |
---|---|---|
committer | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-06-05 11:23:51 (GMT) |
commit | 0100702b9a77000c03934208e9131ef5914dcf63 (patch) | |
tree | 072f02ba20bf1a7df0f2c57379c3e19916af554c /Lib/unittest/test | |
parent | 9ef5d33084f72ed209ec59a9ea4b0a1d968ee8d6 (diff) | |
download | cpython-0100702b9a77000c03934208e9131ef5914dcf63.zip cpython-0100702b9a77000c03934208e9131ef5914dcf63.tar.gz cpython-0100702b9a77000c03934208e9131ef5914dcf63.tar.bz2 |
Issue 8351. Suppress large diffs in unittest.TestCase.assertSequenceEqual.
Diffstat (limited to 'Lib/unittest/test')
-rw-r--r-- | Lib/unittest/test/test_case.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py index 25beab7..7dbc009 100644 --- a/Lib/unittest/test/test_case.py +++ b/Lib/unittest/test/test_case.py @@ -1,3 +1,5 @@ +import difflib +import pprint import re import sys @@ -588,6 +590,23 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing): self.assertRaises(self.failureException, self.assertDictEqual, [], d) self.assertRaises(self.failureException, self.assertDictEqual, 1, 1) + def testAssertSequenceEqualMaxDiff(self): + seq1 = 'a' + 'x' * 80**2 + seq2 = 'b' + 'x' * 80**2 + diff = '\n'.join(difflib.ndiff(pprint.pformat(seq1).splitlines(), + pprint.pformat(seq2).splitlines())) + try: + self.assertSequenceEqual(seq1, seq2, max_diff=len(diff)/2) + except AssertionError as e: + msg = e.args[0] + self.assertTrue(len(msg) < len(diff)) + + try: + self.assertSequenceEqual(seq1, seq2, max_diff=len(diff)*2) + except AssertionError as e: + msg = e.args[0] + self.assertTrue(len(msg) > len(diff)) + def testAssertItemsEqual(self): a = object() self.assertItemsEqual([1, 2, 3], [3, 2, 1]) |