#11763: don't use difflib in TestCase.assertMultiLineEqual if the strings are too long.
diff --git a/Lib/unittest.py b/Lib/unittest.py
index 03a11b7..cabd857 100644
--- a/Lib/unittest.py
+++ b/Lib/unittest.py
@@ -346,6 +346,9 @@
longMessage = False
+ # If a string is longer than _diffThreshold, use normal comparison instead
+ # of difflib. See #11763.
+ _diffThreshold = 2**16
def __init__(self, methodName='runTest'):
"""Create an instance of the class that will use the named test
@@ -955,6 +958,10 @@
'Second argument is not a string'))
if first != second:
+ # don't use difflib if the strings are too long
+ if (len(first) > self._diffThreshold or
+ len(second) > self._diffThreshold):
+ self._baseAssertEqual(first, second, msg)
standardMsg = '\n' + ''.join(difflib.ndiff(first.splitlines(True), second.splitlines(True)))
self.fail(self._formatMessage(msg, standardMsg))