1313)
1414
1515__unittest = True
16- TRUNCATED_DIFF = '\n [diff truncated...]'
1716
1817class SkipTest (Exception ):
1918 """
@@ -157,6 +156,11 @@ class TestCase(object):
157156
158157 longMessage = False
159158
159+ # This attribute sets the maximum length of a diff in failure messsages
160+ # by assert methods using difflib. It is looked up as an instance attribute
161+ # so can be configured by individual tests if required.
162+ maxDiff = 80 * 8
163+
160164 # Attribute used by TestSuite for classSetUp
161165
162166 _classSetupFailed = False
@@ -589,8 +593,7 @@ def deprecated_func(*args, **kwargs):
589593 failUnlessRaises = _deprecate (assertRaises )
590594 failIf = _deprecate (assertFalse )
591595
592- def assertSequenceEqual (self , seq1 , seq2 , msg = None , seq_type = None ,
593- max_diff = 80 * 8 ):
596+ def assertSequenceEqual (self , seq1 , seq2 , msg = None , seq_type = None ):
594597 """An equality assertion for ordered sequences (like lists and tuples).
595598
596599 For the purposes of this function, a valid ordered sequence type is one
@@ -603,7 +606,6 @@ def assertSequenceEqual(self, seq1, seq2, msg=None, seq_type=None,
603606 datatype should be enforced.
604607 msg: Optional message to use on failure instead of a list of
605608 differences.
606- max_diff: Maximum size off the diff, larger diffs are not shown
607609 """
608610 if seq_type is not None :
609611 seq_type_name = seq_type .__name__
@@ -690,14 +692,15 @@ def assertSequenceEqual(self, seq1, seq2, msg=None, seq_type=None,
690692 diffMsg = '\n ' + '\n ' .join (
691693 difflib .ndiff (pprint .pformat (seq1 ).splitlines (),
692694 pprint .pformat (seq2 ).splitlines ()))
693- standardMsg = self ._truncateMessage (standardMsg , diffMsg , max_diff )
695+ standardMsg = self ._truncateMessage (standardMsg , diffMsg )
694696 msg = self ._formatMessage (msg , standardMsg )
695697 self .fail (msg )
696698
697- def _truncateMessage (self , message , diff , max_diff ):
699+ def _truncateMessage (self , message , diff ):
700+ max_diff = self .maxDiff
698701 if max_diff is None or len (diff ) <= max_diff :
699702 return message + diff
700- return message + diff [: max_diff ] + TRUNCATED_DIFF
703+ return message
701704
702705 def assertListEqual (self , list1 , list2 , msg = None ):
703706 """A list-specific equality assertion.
@@ -797,9 +800,10 @@ def assertDictEqual(self, d1, d2, msg=None):
797800 self .assert_ (isinstance (d2 , dict ), 'Second argument is not a dictionary' )
798801
799802 if d1 != d2 :
800- standardMsg = ('\n ' + '\n ' .join (difflib .ndiff (
803+ diff = ('\n ' + '\n ' .join (difflib .ndiff (
801804 pprint .pformat (d1 ).splitlines (),
802805 pprint .pformat (d2 ).splitlines ())))
806+ standardMsg = self ._truncateMessage ('' , diff )
803807 self .fail (self ._formatMessage (msg , standardMsg ))
804808
805809 def assertDictContainsSubset (self , expected , actual , msg = None ):
@@ -882,8 +886,9 @@ def assertMultiLineEqual(self, first, second, msg=None):
882886 'Second argument is not a string' ))
883887
884888 if first != second :
885- standardMsg = '\n ' + '' .join (difflib .ndiff (first .splitlines (True ),
889+ diff = '\n ' + '' .join (difflib .ndiff (first .splitlines (True ),
886890 second .splitlines (True )))
891+ standardMsg = self ._truncateMessage ('' , diff )
887892 self .fail (self ._formatMessage (msg , standardMsg ))
888893
889894 def assertLess (self , a , b , msg = None ):
0 commit comments