summaryrefslogtreecommitdiffstats
path: root/Lib/doctest.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/doctest.py')
-rw-r--r--Lib/doctest.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py
index c01dd64..67de4c5 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -1596,14 +1596,20 @@ class OutputChecker:
REPORT_CDIFF |
REPORT_NDIFF):
return False
+
# If expected output uses ellipsis, a meaningful fancy diff is
- # too hard.
- if optionflags & ELLIPSIS and ELLIPSIS_MARKER in want:
- return False
+ # too hard ... or maybe not. In two real-life failures Tim saw,
+ # a diff was a major help anyway, so this is commented out.
+ # [todo] _ellipsis_match() knows which pieces do and don't match,
+ # and could be the basis for a kick-ass diff in this case.
+ ##if optionflags & ELLIPSIS and ELLIPSIS_MARKER in want:
+ ## return False
+
# ndiff does intraline difference marking, so can be useful even
- # for 1-line inputs.
+ # for 1-line differences.
if optionflags & REPORT_NDIFF:
return True
+
# The other diff types need at least a few lines to be helpful.
return want.count('\n') > 2 and got.count('\n') > 2
@@ -1620,9 +1626,7 @@ class OutputChecker:
if not (optionflags & DONT_ACCEPT_BLANKLINE):
got = re.sub('(?m)^[ ]*(?=\n)', BLANKLINE_MARKER, got)
- # Check if we should use diff. Don't use diff if the actual
- # or expected outputs are too short, or if the expected output
- # contains an ellipsis marker.
+ # Check if we should use diff.
if self._do_a_fancy_diff(want, got, optionflags):
# Split want & got into lines.
want_lines = [l+'\n' for l in want.split('\n')]