diff options
author | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-06-05 12:10:52 (GMT) |
---|---|---|
committer | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-06-05 12:10:52 (GMT) |
commit | e37d75fce22f6c216148102652db64744ac06a6e (patch) | |
tree | 888822f5faf9b15b9ee815818de2f23e61f53bd5 /Lib/unittest/test/test_case.py | |
parent | 23f0d6b57bb9427df0ab2305c47f14b9c092e0fe (diff) | |
download | cpython-e37d75fce22f6c216148102652db64744ac06a6e.zip cpython-e37d75fce22f6c216148102652db64744ac06a6e.tar.gz cpython-e37d75fce22f6c216148102652db64744ac06a6e.tar.bz2 |
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.
Diffstat (limited to 'Lib/unittest/test/test_case.py')
-rw-r--r-- | Lib/unittest/test/test_case.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py index 7dbc009..840defd 100644 --- a/Lib/unittest/test/test_case.py +++ b/Lib/unittest/test/test_case.py @@ -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) + 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, 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)) def testAssertItemsEqual(self): |