@@ -1238,6 +1238,11 @@ def assertCountEqual(self, first, second, msg=None):
1238
1238
msg = self ._formatMessage (msg , standardMsg )
1239
1239
self .fail (msg )
1240
1240
1241
+ def addTrailingNewLine (self , line ):
1242
+ if line != '' and line [- 1 ] != '\n ' :
1243
+ line = line + '\n '
1244
+ return line
1245
+
1241
1246
def assertMultiLineEqual (self , first , second , msg = None ):
1242
1247
"""Assert that two multi-line strings are equal."""
1243
1248
self .assertIsInstance (first , str , 'First argument is not a string' )
@@ -1248,13 +1253,16 @@ def assertMultiLineEqual(self, first, second, msg=None):
1248
1253
if (len (first ) > self ._diffThreshold or
1249
1254
len (second ) > self ._diffThreshold ):
1250
1255
self ._baseAssertEqual (first , second , msg )
1251
- firstlines = first .splitlines (keepends = True )
1256
+ firstlines = first .splitlines (keepends = True )
1252
1257
secondlines = second .splitlines (keepends = True )
1253
1258
if len (firstlines ) == 1 and first .strip ('\r \n ' ) == first :
1254
1259
firstlines = [first + '\n ' ]
1255
1260
secondlines = [second + '\n ' ]
1256
1261
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 )
1258
1266
standardMsg = self ._truncateMessage (standardMsg , diff )
1259
1267
self .fail (self ._formatMessage (msg , standardMsg ))
1260
1268
0 commit comments