@@ -596,6 +596,8 @@ def testAssertSequenceEqualMaxDiff(self):
596596 seq2 = 'b' + 'x' * 80 ** 2
597597 diff = '\n ' .join (difflib .ndiff (pprint .pformat (seq1 ).splitlines (),
598598 pprint .pformat (seq2 ).splitlines ()))
599+ # the +1 is the leading \n added by assertSequenceEqual
600+ omitted = unittest .case .DIFF_OMITTED % (len (diff ) + 1 ,)
599601
600602 self .maxDiff = len (diff )// 2
601603 try :
@@ -605,6 +607,7 @@ def testAssertSequenceEqualMaxDiff(self):
605607 else :
606608 self .fail ('assertSequenceEqual did not fail.' )
607609 self .assertTrue (len (msg ) < len (diff ))
610+ self .assertIn (omitted , msg )
608611
609612 self .maxDiff = len (diff ) * 2
610613 try :
@@ -614,6 +617,7 @@ def testAssertSequenceEqualMaxDiff(self):
614617 else :
615618 self .fail ('assertSequenceEqual did not fail.' )
616619 self .assertTrue (len (msg ) > len (diff ))
620+ self .assertNotIn (omitted , msg )
617621
618622 self .maxDiff = None
619623 try :
@@ -623,6 +627,41 @@ def testAssertSequenceEqualMaxDiff(self):
623627 else :
624628 self .fail ('assertSequenceEqual did not fail.' )
625629 self .assertTrue (len (msg ) > len (diff ))
630+ self .assertNotIn (omitted , msg )
631+
632+ def testTruncateMessage (self ):
633+ self .maxDiff = 1
634+ message = self ._truncateMessage ('foo' , 'bar' )
635+ omitted = unittest .case .DIFF_OMITTED % len ('bar' )
636+ self .assertEqual (message , 'foo' + omitted )
637+
638+ self .maxDiff = None
639+ message = self ._truncateMessage ('foo' , 'bar' )
640+ self .assertEqual (message , 'foobar' )
641+
642+ def testAssertDictEqualTruncates (self ):
643+ test = unittest .TestCase ('assertEqual' )
644+ def truncate (msg , diff ):
645+ return 'foo'
646+ test ._truncateMessage = truncate
647+ try :
648+ test .assertDictEqual ({}, {1 : 0 })
649+ except self .failureException as e :
650+ self .assertEqual (str (e ), 'foo' )
651+ else :
652+ self .fail ('assertDictEqual did not fail' )
653+
654+ def testAssertMultiLineEqualTruncates (self ):
655+ test = unittest .TestCase ('assertEqual' )
656+ def truncate (msg , diff ):
657+ return 'foo'
658+ test ._truncateMessage = truncate
659+ try :
660+ test .assertMultiLineEqual ('foo' , 'bar' )
661+ except self .failureException as e :
662+ self .assertEqual (str (e ), 'foo' )
663+ else :
664+ self .fail ('assertMultiLineEqual did not fail' )
626665
627666 def testAssertItemsEqual (self ):
628667 a = object ()
0 commit comments