diff -r 6b07f261ccf4 Lib/unittest/case.py --- a/Lib/unittest/case.py Thu Sep 15 16:52:54 2016 -0400 +++ b/Lib/unittest/case.py Thu Sep 15 14:40:05 2016 -0700 @@ -124,6 +124,11 @@ return all(_is_subtype(e, basetype) for e in expected) return isinstance(expected, type) and issubclass(expected, basetype) +def ensureNewline(line): + if line != '' and line[-1] != '\n': + line += '\n' + return line + class _BaseTestCaseContext: def __init__(self, test_case): @@ -1188,7 +1193,10 @@ firstlines = [first + '\n'] secondlines = [second + '\n'] standardMsg = '%s != %s' % _common_shorten_repr(first, second) - diff = '\n' + ''.join(difflib.ndiff(firstlines, secondlines)) + difflines = list(difflib.ndiff(firstlines, secondlines)) + if len(difflines) > 1: + difflines = [ensureNewline(line) for line in difflines] + diff = '\n' + ''.join(difflines) standardMsg = self._truncateMessage(standardMsg, diff) self.fail(self._formatMessage(msg, standardMsg))