diff options
author | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-06-05 20:33:43 (GMT) |
---|---|---|
committer | Michael Foord <fuzzyman@voidspace.org.uk> | 2010-06-05 20:33:43 (GMT) |
commit | c1d7c5b7fab5709f1c59f53463aab8ae359cbe8c (patch) | |
tree | b76237106d3892eecae3b710bb7e3454f1ff3eca /Lib | |
parent | d8918597110766dfc66e301c8fd2caf5d156ba2d (diff) | |
download | cpython-c1d7c5b7fab5709f1c59f53463aab8ae359cbe8c.zip cpython-c1d7c5b7fab5709f1c59f53463aab8ae359cbe8c.tar.gz cpython-c1d7c5b7fab5709f1c59f53463aab8ae359cbe8c.tar.bz2 |
Tests for unittest.TestCase.maxDiff.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/unittest/test/test_case.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py index 92ede20..6759a18 100644 --- a/Lib/unittest/test/test_case.py +++ b/Lib/unittest/test/test_case.py @@ -596,6 +596,8 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing): seq2 = 'b' + 'x' * 80**2 diff = '\n'.join(difflib.ndiff(pprint.pformat(seq1).splitlines(), pprint.pformat(seq2).splitlines())) + # the +1 is the leading \n added by assertSequenceEqual + omitted = unittest.case.DIFF_OMITTED % (len(diff) + 1,) self.maxDiff = len(diff)//2 try: @@ -605,6 +607,7 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing): else: self.fail('assertSequenceEqual did not fail.') self.assertTrue(len(msg) < len(diff)) + self.assertIn(omitted, msg) self.maxDiff = len(diff) * 2 try: @@ -614,6 +617,7 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing): else: self.fail('assertSequenceEqual did not fail.') self.assertTrue(len(msg) > len(diff)) + self.assertNotIn(omitted, msg) self.maxDiff = None try: @@ -623,6 +627,41 @@ class Test_TestCase(unittest.TestCase, TestEquality, TestHashing): else: self.fail('assertSequenceEqual did not fail.') self.assertTrue(len(msg) > len(diff)) + self.assertNotIn(omitted, msg) + + def testTruncateMessage(self): + self.maxDiff = 1 + message = self._truncateMessage('foo', 'bar') + omitted = unittest.case.DIFF_OMITTED % len('bar') + self.assertEqual(message, 'foo' + omitted) + + self.maxDiff = None + message = self._truncateMessage('foo', 'bar') + self.assertEqual(message, 'foobar') + + def testAssertDictEqualTruncates(self): + test = unittest.TestCase('assertEqual') + def truncate(msg, diff): + return 'foo' + test._truncateMessage = truncate + try: + test.assertDictEqual({}, {1: 0}) + except self.failureException as e: + self.assertEqual(str(e), 'foo') + else: + self.fail('assertDictEqual did not fail') + + def testAssertMultiLineEqualTruncates(self): + test = unittest.TestCase('assertEqual') + def truncate(msg, diff): + return 'foo' + test._truncateMessage = truncate + try: + test.assertMultiLineEqual('foo', 'bar') + except self.failureException as e: + self.assertEqual(str(e), 'foo') + else: + self.fail('assertMultiLineEqual did not fail') def testAssertItemsEqual(self): a = object() |