@@ -1238,6 +1238,11 @@ def assertCountEqual(self, first, second, msg=None):
12381238 msg = self ._formatMessage (msg , standardMsg )
12391239 self .fail (msg )
12401240
1241+ def addTrailingNewLine (self , line ):
1242+ if line != '' and line [- 1 ] != '\n ' :
1243+ line = line + '\n '
1244+ return line
1245+
12411246 def assertMultiLineEqual (self , first , second , msg = None ):
12421247 """Assert that two multi-line strings are equal."""
12431248 self .assertIsInstance (first , str , 'First argument is not a string' )
@@ -1248,13 +1253,16 @@ def assertMultiLineEqual(self, first, second, msg=None):
12481253 if (len (first ) > self ._diffThreshold or
12491254 len (second ) > self ._diffThreshold ):
12501255 self ._baseAssertEqual (first , second , msg )
1251- firstlines = first .splitlines (keepends = True )
1256+ firstlines = first .splitlines (keepends = True )
12521257 secondlines = second .splitlines (keepends = True )
12531258 if len (firstlines ) == 1 and first .strip ('\r \n ' ) == first :
12541259 firstlines = [first + '\n ' ]
12551260 secondlines = [second + '\n ' ]
12561261 standardMsg = '%s != %s' % _common_shorten_repr (first , second )
1257- diff = '\n ' + '' .join (difflib .ndiff (firstlines , secondlines ))
1262+ difflines = list (difflib .ndiff (firstlines , secondlines ))
1263+ if len (difflines ) > 1 :
1264+ difflines = [self .addTrailingNewLine (line ) for line in difflines ]
1265+ diff = '\n ' + '' .join (difflines )
12581266 standardMsg = self ._truncateMessage (standardMsg , diff )
12591267 self .fail (self ._formatMessage (msg , standardMsg ))
12601268
0 commit comments