From e594bee5351d6109ca5e6a7dde45e5ddd08ebe48 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sun, 22 Aug 2004 01:47:51 +0000 Subject: _ellipsis_match(): Removed special-casing of "...\n". The semantics are non-obvious either way because the newline character "is invisible", but it's still there all the same, and it's easier to explain/predict if that reality is left alone. --- Lib/doctest.py | 4 ---- Lib/test/test_doctest.py | 33 +++++---------------------------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/Lib/doctest.py b/Lib/doctest.py index 6e6661d..25b14ca 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -398,10 +398,6 @@ def _ellipsis_match(want, got): """ if ELLIPSIS_MARKER not in want: return want == got - # Remove \n from ...\n, else the newline will be required, - # and (for example) ... on a line by itself can't match - # nothing gracefully. - want = want.replace(ELLIPSIS_MARKER + '\n', ELLIPSIS_MARKER) # Find "the real" strings. ws = want.split(ELLIPSIS_MARKER) diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py index 245a9f4..3c5fa08 100644 --- a/Lib/test/test_doctest.py +++ b/Lib/test/test_doctest.py @@ -785,40 +785,17 @@ output to match any substring in the actual output: >>> doctest.DocTestRunner(verbose=False, optionflags=flags).run(test) (0, 1) - ... should also match nothing gracefully (note that a regular-expression - implementation of ELLIPSIS would take a loooong time to match this one!): + ... also matches nothing: >>> for i in range(100): - ... print i**2 #doctest: +ELLIPSIS - 0 - ... - 1 - ... - ...... - ... - 36 - ... - ... - ... - 49 - 64 - ......... - 9801 - ... + ... print i**2, #doctest: +ELLIPSIS + 0 1...4...9 16 ... 36 49 64 ... 9801 ... can be surprising; e.g., this test passes: >>> for i in range(21): #doctest: +ELLIPSIS - ... print i - 0 - 1 - 2 - ... - 1 - ... - 2 - ... - 0 + ... print i, + 0 1 2 ...1...2...0 Examples from the docs: -- cgit v0.12