summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2004-08-26 05:44:27 +0000
committerTim Peters <tim.peters@gmail.com>2004-08-26 05:44:27 +0000
commite7edcb8e22126f3afed3c9976a11bb5f58dcbba0 (patch)
treee1eb6c097801f80d144c2f992b72fb6dd439571f
parent4085f030bdc6245c9983e6c2ecc37d8f2fcd9f44 (diff)
downloadcpython-git-e7edcb8e22126f3afed3c9976a11bb5f58dcbba0.tar.gz
output_difference(): In fancy-diff cases, the way this split expected &
actual output into lines created spurious empty lines at the ends of each. Those matched, but the fancy diffs had surprising line counts (1 larger than expected), and tests kept having to slam <BLANKLINE> into the expected output to account for this. Using the splitlines() string method with keepends=True instead accomplishes what was intended directly.
-rw-r--r--Lib/doctest.py4
-rw-r--r--Lib/test/test_doctest.py10
2 files changed, 5 insertions, 9 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 67de4c5a99..d8bc85211a 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -1629,8 +1629,8 @@ class OutputChecker:
# 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')]
- got_lines = [l+'\n' for l in got.split('\n')]
+ want_lines = want.splitlines(True) # True == keep line ends
+ got_lines = got.splitlines(True)
# Use difflib to find their differences.
if optionflags & REPORT_UDIFF:
diff = difflib.unified_diff(want_lines, got_lines, n=2)
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 2464b238d3..0f94fdf2a5 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -972,7 +972,7 @@ and actual outputs to be displayed using a unified diff:
Failed example:
print '\n'.join('abcdefg')
Differences (unified diff with -expected +actual):
- @@ -1,8 +1,8 @@
+ @@ -1,7 +1,7 @@
a
-B
+b
@@ -982,7 +982,6 @@ and actual outputs to be displayed using a unified diff:
f
g
-h
- <BLANKLINE>
(1, 1)
The REPORT_CDIFF flag causes failures that involve multi-line expected
@@ -998,7 +997,7 @@ and actual outputs to be displayed using a context diff:
print '\n'.join('abcdefg')
Differences (context diff with expected followed by actual):
***************
- *** 1,8 ****
+ *** 1,7 ****
a
! B
c
@@ -1006,8 +1005,7 @@ and actual outputs to be displayed using a context diff:
f
g
- h
- <BLANKLINE>
- --- 1,8 ----
+ --- 1,7 ----
a
! b
c
@@ -1015,7 +1013,6 @@ and actual outputs to be displayed using a context diff:
+ e
f
g
- <BLANKLINE>
(1, 1)
@@ -1040,7 +1037,6 @@ marking, as well as interline differences.
? ^
+ a b c d e f g h i j k l m
? + ++ ^
- <BLANKLINE>
(1, 1)
The REPORT_ONLY_FIRST_FAILURE supresses result output after the first