New submission from Michael Foord <mich...@voidspace.org.uk>:

>>> s = "x" * (2**29)
>>> case.assertEqual(s + "a", s + "b")
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/home/antoine/cpython/default/Lib/unittest/case.py", line 643,
in assertEqual assertion_func(first, second, msg=msg)
 File "/home/antoine/cpython/default/Lib/unittest/case.py", line 984,
in assertMultiLineEqual secondlines = [second + '\n']
MemoryError

assertEqual delegates to assertMultilineEqual for comparing text which uses 
difflib for comparisons. This has performance issues (as well as memory issues) 
for very large inputs, so should fallback to a simple comparison (or simpler 
diff generation technique) for very large inputs.

----------
assignee: michael.foord
messages: 132965
nosy: ezio.melotti, michael.foord, pitrou
priority: normal
severity: normal
status: open
title: assertEqual memory issues with large text inputs
versions: Python 2.7, Python 3.2, Python 3.3

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11763>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to