summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorR David Murray <rdmurray@bitdance.com>2014-10-03 02:42:42 (GMT)
committerR David Murray <rdmurray@bitdance.com>2014-10-03 02:42:42 (GMT)
commitb48cb29ac4b9ac6b7e2a835c70c4fdd1b5333bcf (patch)
tree3b7fc415bffbd224c32cb32ce1527177f64bb568
parent3f1ef9efd573f6fc9996d61dc239fdfed771614b (diff)
downloadcpython-b48cb29ac4b9ac6b7e2a835c70c4fdd1b5333bcf.zip
cpython-b48cb29ac4b9ac6b7e2a835c70c4fdd1b5333bcf.tar.gz
cpython-b48cb29ac4b9ac6b7e2a835c70c4fdd1b5333bcf.tar.bz2
#8473: Add tests that doctest uses universal newlines in testfile.
Python3 does not have the bug covered by the issue.
-rw-r--r--Lib/test/test_doctest.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/test/test_doctest.py b/Lib/test/test_doctest.py
index 56193e8..4137d5a 100644
--- a/Lib/test/test_doctest.py
+++ b/Lib/test/test_doctest.py
@@ -2613,6 +2613,36 @@ Test the verbose output:
>>> sys.argv = save_argv
"""
+def test_lineendings(): r"""
+*nix systems use \n line endings, while Windows systems use \r\n. Python
+handles this using universal newline mode for reading files. Let's make
+sure doctest does so (issue 8473) by creating temporary test files using each
+of the two line disciplines. One of the two will be the "wrong" one for the
+platform the test is run on.
+
+Windows line endings first:
+
+ >>> import tempfile, os
+ >>> fn = tempfile.mktemp()
+ >>> with open(fn, 'w') as f:
+ ... f.write('Test:\r\n\r\n >>> x = 1 + 1\r\n\r\nDone.\r\n')
+ 35
+ >>> doctest.testfile(fn, False)
+ TestResults(failed=0, attempted=1)
+ >>> os.remove(fn)
+
+And now *nix line endings:
+
+ >>> fn = tempfile.mktemp()
+ >>> with open(fn, 'w') as f:
+ ... f.write('Test:\n\n >>> x = 1 + 1\n\nDone.\n')
+ 30
+ >>> doctest.testfile(fn, False)
+ TestResults(failed=0, attempted=1)
+ >>> os.remove(fn)
+
+"""
+
def test_testmod(): r"""
Tests for the testmod function. More might be useful, but for now we're just
testing the case raised by Issue 6195, where trying to doctest a C module would