Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
bdc36e4d
Commit
bdc36e4d
authored
Feb 09, 2007
by
Guido van Rossum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Redue the failure rate to 13 tests. Bah.
parent
0bcbb0d4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
135 additions
and
135 deletions
+135
-135
Lib/test/test_doctest.py
Lib/test/test_doctest.py
+135
-135
No files found.
Lib/test/test_doctest.py
View file @
bdc36e4d
...
...
@@ -35,7 +35,7 @@ class SampleClass:
>>> for i in range(10):
... sc = sc.double()
... print(sc.get(), end=' ')
6 12 24 48 96 192 384 768 1536 3072
6 12 24 48 96 192 384 768 1536 3072
"""
def
__init__
(
self
,
val
):
"""
...
...
@@ -166,10 +166,10 @@ Example is a simple container class that holds:
These attributes are set by the constructor. `source` and `want` are
required; the other attributes all have default values:
>>> example = doctest.Example('print
1
', '1\n')
>>> example = doctest.Example('print
(1)
', '1\n')
>>> (example.source, example.want, example.exc_msg,
... example.lineno, example.indent, example.options)
('print
1
\n', '1\n', None, 0, 0, {})
('print
(1)
\n', '1\n', None, 0, 0, {})
The first three attributes (`source`, `want`, and `exc_msg`) may be
specified positionally; the remaining arguments should be specified as
...
...
@@ -186,22 +186,22 @@ keyword arguments:
The constructor normalizes the `source` string to end in a newline:
Source spans a single line: no terminating newline.
>>> e = doctest.Example('print
1
', '1\n')
>>> e = doctest.Example('print
(1)
', '1\n')
>>> e.source, e.want
('print
1
\n', '1\n')
('print
(1)
\n', '1\n')
>>> e = doctest.Example('print
1
\n', '1\n')
>>> e = doctest.Example('print
(1)
\n', '1\n')
>>> e.source, e.want
('print
1
\n', '1\n')
('print
(1)
\n', '1\n')
Source spans multiple lines: require terminating newline.
>>> e = doctest.Example('print
1;\nprint 2
\n', '1\n2\n')
>>> e = doctest.Example('print
(1);\nprint(2)
\n', '1\n2\n')
>>> e.source, e.want
('print
1;\nprint 2
\n', '1\n2\n')
('print
(1);\nprint(2)
\n', '1\n2\n')
>>> e = doctest.Example('print
1;\nprint 2
', '1\n2\n')
>>> e = doctest.Example('print
(1);\nprint(2)
', '1\n2\n')
>>> e.source, e.want
('print
1;\nprint 2
\n', '1\n2\n')
('print
(1);\nprint(2)
\n', '1\n2\n')
Empty source string (which should never appear in real examples)
>>> e = doctest.Example('', '')
...
...
@@ -211,13 +211,13 @@ The constructor normalizes the `source` string to end in a newline:
The constructor normalizes the `want` string to end in a newline,
unless it's the empty string:
>>> e = doctest.Example('print
1
', '1\n')
>>> e = doctest.Example('print
(1)
', '1\n')
>>> e.source, e.want
('print
1
\n', '1\n')
('print
(1)
\n', '1\n')
>>> e = doctest.Example('print
1
', '1')
>>> e = doctest.Example('print
(1)
', '1')
>>> e.source, e.want
('print
1
\n', '1\n')
('print
(1)
\n', '1\n')
>>> e = doctest.Example('print', '')
>>> e.source, e.want
...
...
@@ -265,12 +265,12 @@ filename, and line number). The docstring is parsed by the `DocTest`
constructor:
>>> docstring = '''
... >>> print
12
... >>> print
(12)
... 12
...
... Non-example text.
...
... >>> print
'another\
ex
ample'
... >>> print
('another\
ex
ample')
... another
... example
... '''
...
...
@@ -284,9 +284,9 @@ constructor:
2
>>> e1, e2 = test.examples
>>> (e1.source, e1.want, e1.lineno)
('print
12
\n', '12\n', 1)
('print
(12)
\n', '12\n', 1)
>>> (e2.source, e2.want, e2.lineno)
("print
'another\\example'
\n", 'another\nexample\n', 6)
("print
('another\\example')
\n", 'another\nexample\n', 6)
Source information (name, filename, and line number) is available as
attributes on the doctest object:
...
...
@@ -307,7 +307,7 @@ If the docstring contains inconsistant leading whitespace in the
expected output of an example, then `DocTest` will raise a ValueError:
>>> docstring = r'''
... >>> print
'bad\nindentation'
... >>> print
('bad\nindentation')
... bad
... indentation
... '''
...
...
@@ -319,8 +319,8 @@ If the docstring contains inconsistent leading whitespace on
continuation lines, then `DocTest` will raise a ValueError:
>>> docstring = r'''
... >>> print
('bad indentation',
... ... 2)
... >>> print
(
('bad indentation',
... ... 2)
)
... ('bad', 'indentation')
... '''
>>> parser.get_doctest(docstring, globs, 'some_test', 'filename', 0)
...
...
@@ -330,18 +330,18 @@ continuation lines, then `DocTest` will raise a ValueError:
If there's no blank space after a PS1 prompt ('>>>'), then `DocTest`
will raise a ValueError:
>>> docstring = '>>>print
1
\n1'
>>> docstring = '>>>print
(1)
\n1'
>>> parser.get_doctest(docstring, globs, 'some_test', 'filename', 0)
Traceback (most recent call last):
ValueError: line 1 of the docstring for some_test lacks blank after >>>: '>>>print
1
'
ValueError: line 1 of the docstring for some_test lacks blank after >>>: '>>>print
(1)
'
If there's no blank space after a PS2 prompt ('...'), then `DocTest`
will raise a ValueError:
>>> docstring = '>>> if 1:\n...print
1
\n1'
>>> docstring = '>>> if 1:\n...print
(1)
\n1'
>>> parser.get_doctest(docstring, globs, 'some_test', 'filename', 0)
Traceback (most recent call last):
ValueError: line 2 of the docstring for some_test lacks blank after ...: '...print
1
'
ValueError: line 2 of the docstring for some_test lacks blank after ...: '...print
(1)
'
"""
...
...
@@ -382,7 +382,7 @@ leading path components.
>>> e = tests[0].examples[0]
>>> (e.source, e.want, e.lineno)
('print
sample_func(22
)\n', '44\n', 3)
('print
(sample_func(22)
)\n', '44\n', 3)
By default, tests are created for objects with no docstring:
...
...
@@ -452,7 +452,7 @@ functions, classes, and the `__test__` dictionary, if it exists:
>>> m = new.module('some_module')
>>> def triple(val):
... '''
... >>> print
triple(11
)
... >>> print
(triple(11)
)
... 33
... '''
... return val*3
...
...
@@ -461,11 +461,11 @@ functions, classes, and the `__test__` dictionary, if it exists:
... 'SampleClass': SampleClass,
... '__doc__': '''
... Module docstring.
... >>> print
'module'
... >>> print
('module')
... module
... ''',
... '__test__': {
... 'd': '>>> print
6\n6\n>>> print 7
\n7\n',
... 'd': '>>> print
(6)\n6\n>>> print(7)
\n7\n',
... 'c': triple}})
>>> finder = doctest.DocTestFinder()
...
...
@@ -570,8 +570,8 @@ DocTestFinder finds the line number of each example:
... ...
...
... >>> for x in range(10):
... ... print
x,
... 0 1 2 3 4 5 6 7 8 9
... ... print
(x, end=' ')
... 0 1 2 3 4 5 6 7 8 9
... >>> x//2
... 6
... '''
...
...
@@ -591,8 +591,8 @@ text:
>>> s = '''
... >>> x, y = 2, 3 # no output expected
... >>> if 1:
... ... print
x
... ... print
y
... ... print
(x)
... ... print
(y)
... 2
... 3
...
...
...
@@ -609,7 +609,7 @@ text:
Text: '\n'
Example: ('x, y = 2, 3 # no output expected\n', '', 1)
Text: ''
Example: ('if 1:\n print
x\n print y
\n', '2\n3\n', 2)
Example: ('if 1:\n print
(x)\n print(y)
\n', '2\n3\n', 2)
Text: '\nSome text.\n'
Example: ('x+y\n', '5\n', 9)
Text: ''
...
...
@@ -619,7 +619,7 @@ The `get_examples` method returns just the examples:
>>> for piece in parser.get_examples(s):
... print((piece.source, piece.want, piece.lineno))
('x, y = 2, 3 # no output expected\n', '', 1)
('if 1:\n print
x\n print y
\n', '2\n3\n', 2)
('if 1:\n print
(x)\n print(y)
\n', '2\n3\n', 2)
('x+y\n', '5\n', 9)
The `get_doctest` method creates a Test from the examples, along with the
...
...
@@ -631,7 +631,7 @@ given arguments:
>>> for piece in test.examples:
... print((piece.source, piece.want, piece.lineno))
('x, y = 2, 3 # no output expected\n', '', 1)
('if 1:\n print
x\n print y
\n', '2\n3\n', 2)
('if 1:\n print
(x)\n print(y)
\n', '2\n3\n', 2)
('x+y\n', '5\n', 9)
"""
...
...
@@ -645,7 +645,7 @@ statistics. Here's a simple DocTest case we can use:
>>> def f(x):
... '''
... >>> x = 12
... >>> print
x
... >>> print
(x)
... 12
... >>> x//2
... 6
...
...
@@ -666,7 +666,7 @@ the failure and proceeds to the next example:
>>> def f(x):
... '''
... >>> x = 12
... >>> print
x
... >>> print
(x)
... 14
... >>> x//2
... 6
...
...
@@ -679,13 +679,13 @@ the failure and proceeds to the next example:
Expecting nothing
ok
Trying:
print
x
print
(x)
Expecting:
14
**********************************************************************
File ..., line 4, in f
Failed example:
print
x
print
(x)
Expected:
14
Got:
...
...
@@ -704,7 +704,7 @@ output:
>>> def f(x):
... '''
... >>> x = 12
... >>> print
x
... >>> print
(x)
... 12
... >>> x//2
... 6
...
...
@@ -717,7 +717,7 @@ output:
Expecting nothing
ok
Trying:
print
x
print
(x)
Expecting:
12
ok
...
...
@@ -747,7 +747,7 @@ iff `-v` appears in sys.argv:
Expecting nothing
ok
Trying:
print
x
print
(x)
Expecting:
12
ok
...
...
@@ -774,7 +774,7 @@ replaced with any other string:
>>> def f(x):
... '''
... >>> x = 12
... >>> print
x//0
... >>> print
(x//0)
... Traceback (most recent call last):
... ZeroDivisionError: integer division or modulo by zero
... '''
...
...
@@ -790,7 +790,7 @@ unexpected exception:
>>> def f(x):
... '''
... >>> x = 12
... >>> print
'pre-exception output', x//0
... >>> print
('pre-exception output', x//0)
... pre-exception output
... Traceback (most recent call last):
... ZeroDivisionError: integer division or modulo by zero
...
...
@@ -801,7 +801,7 @@ unexpected exception:
**********************************************************************
File ..., line 4, in f
Failed example:
print
'pre-exception output', x//0
print
('pre-exception output', x//0)
Exception raised:
...
ZeroDivisionError: integer division or modulo by zero
...
...
@@ -942,7 +942,7 @@ The DONT_ACCEPT_BLANKLINE flag disables the match between blank lines
and the '<BLANKLINE>' marker:
>>> def f(x):
... '>>> print
"a\\n\\nb"
\na\n<BLANKLINE>\nb\n'
... '>>> print
("a\\n\\nb")
\na\n<BLANKLINE>\nb\n'
>>> # Without the flag:
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -957,7 +957,7 @@ and the '<BLANKLINE>' marker:
**********************************************************************
File ..., line 2, in f
Failed example:
print
"a\n\nb"
print
("a\n\nb")
Expected:
a
<BLANKLINE>
...
...
@@ -972,7 +972,7 @@ The NORMALIZE_WHITESPACE flag causes all sequences of whitespace to be
treated as equal:
>>> def f(x):
... '>>> print
1, 2, 3
\n 1 2\n 3'
... '>>> print
(1, 2, 3)
\n 1 2\n 3'
>>> # Without the flag:
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -981,7 +981,7 @@ treated as equal:
**********************************************************************
File ..., line 2, in f
Failed example:
print
1, 2, 3
print
(1, 2, 3)
Expected:
1 2
3
...
...
@@ -1004,7 +1004,7 @@ The ELLIPSIS flag causes ellipsis marker ("...") in the expected
output to match any substring in the actual output:
>>> def f(x):
... '>>> print
range(15
)\n[0, 1, 2, ..., 14]\n'
... '>>> print
(range(15)
)\n[0, 1, 2, ..., 14]\n'
>>> # Without the flag:
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -1013,7 +1013,7 @@ output to match any substring in the actual output:
**********************************************************************
File ..., line 2, in f
Failed example:
print
range(15
)
print
(range(15)
)
Expected:
[0, 1, 2, ..., 14]
Got:
...
...
@@ -1071,7 +1071,7 @@ and actual outputs to be displayed using a unified diff:
>>> def f(x):
... r'''
... >>> print
'\n'.join('abcdefg'
)
... >>> print
('\n'.join('abcdefg')
)
... a
... B
... c
...
...
@@ -1088,7 +1088,7 @@ and actual outputs to be displayed using a unified diff:
**********************************************************************
File ..., line 3, in f
Failed example:
print
'\n'.join('abcdefg'
)
print
('\n'.join('abcdefg')
)
Expected:
a
B
...
...
@@ -1115,7 +1115,7 @@ and actual outputs to be displayed using a unified diff:
**********************************************************************
File ..., line 3, in f
Failed example:
print
'\n'.join('abcdefg'
)
print
('\n'.join('abcdefg')
)
Differences (unified diff with -expected +actual):
@@ -1,7 +1,7 @@
a
...
...
@@ -1140,7 +1140,7 @@ and actual outputs to be displayed using a context diff:
**********************************************************************
File ..., line 3, in f
Failed example:
print
'\n'.join('abcdefg'
)
print
('\n'.join('abcdefg')
)
Differences (context diff with expected followed by actual):
***************
*** 1,7 ****
...
...
@@ -1168,7 +1168,7 @@ marking, as well as interline differences.
>>> def f(x):
... r'''
... >>> print
"a b c d e f g h i j k l m"
... >>> print
("a b c d e f g h i j k l m")
... a b c d e f g h i j k 1 m
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -1178,7 +1178,7 @@ marking, as well as interline differences.
**********************************************************************
File ..., line 3, in f
Failed example:
print
"a b c d e f g h i j k l m"
print
("a b c d e f g h i j k l m")
Differences (ndiff with -expected +actual):
- a b c d e f g h i j k 1 m
? ^
...
...
@@ -1191,15 +1191,15 @@ failing example:
>>> def f(x):
... r'''
... >>> print
1
# first success
... >>> print
(1)
# first success
... 1
... >>> print
2
# first failure
... >>> print
(2)
# first failure
... 200
... >>> print
3
# second failure
... >>> print
(3)
# second failure
... 300
... >>> print
4
# second success
... >>> print
(4)
# second success
... 4
... >>> print
5
# third failure
... >>> print
(5)
# third failure
... 500
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -1209,7 +1209,7 @@ failing example:
**********************************************************************
File ..., line 5, in f
Failed example:
print
2
# first failure
print
(2)
# first failure
Expected:
200
Got:
...
...
@@ -1221,18 +1221,18 @@ However, output from `report_start` is not supressed:
>>> doctest.DocTestRunner(verbose=True, optionflags=flags).run(test)
... # doctest: +ELLIPSIS
Trying:
print
1
# first success
print
(1)
# first success
Expecting:
1
ok
Trying:
print
2
# first failure
print
(2)
# first failure
Expecting:
200
**********************************************************************
File ..., line 5, in f
Failed example:
print
2
# first failure
print
(2)
# first failure
Expected:
200
Got:
...
...
@@ -1244,15 +1244,15 @@ count as failures:
>>> def f(x):
... r'''
... >>> print
1
# first success
... >>> print
(1)
# first success
... 1
... >>> raise ValueError(2) # first failure
... 200
... >>> print
3
# second failure
... >>> print
(3)
# second failure
... 300
... >>> print
4
# second success
... >>> print
(4)
# second success
... 4
... >>> print
5
# third failure
... >>> print
(5)
# third failure
... 500
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -1298,10 +1298,10 @@ single example. To turn an option on for an example, follow that
example with a comment of the form ``# doctest: +OPTION``:
>>> def f(x): r'''
... >>> print
range(10)
# should fail: no ellipsis
... >>> print
(range(10))
# should fail: no ellipsis
... [0, 1, ..., 9]
...
... >>> print
range(10)
# doctest: +ELLIPSIS
... >>> print
(range(10))
# doctest: +ELLIPSIS
... [0, 1, ..., 9]
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -1310,7 +1310,7 @@ example with a comment of the form ``# doctest: +OPTION``:
**********************************************************************
File ..., line 2, in f
Failed example:
print
range(10)
# should fail: no ellipsis
print
(range(10))
# should fail: no ellipsis
Expected:
[0, 1, ..., 9]
Got:
...
...
@@ -1321,11 +1321,11 @@ To turn an option off for an example, follow that example with a
comment of the form ``# doctest: -OPTION``:
>>> def f(x): r'''
... >>> print
range(10
)
... >>> print
(range(10)
)
... [0, 1, ..., 9]
...
... >>> # should fail: no ellipsis
... >>> print
range(10)
# doctest: -ELLIPSIS
... >>> print
(range(10))
# doctest: -ELLIPSIS
... [0, 1, ..., 9]
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -1335,7 +1335,7 @@ comment of the form ``# doctest: -OPTION``:
**********************************************************************
File ..., line 6, in f
Failed example:
print
range(10)
# doctest: -ELLIPSIS
print
(range(10))
# doctest: -ELLIPSIS
Expected:
[0, 1, ..., 9]
Got:
...
...
@@ -1346,13 +1346,13 @@ Option directives affect only the example that they appear with; they
do not change the options for surrounding examples:
>>> def f(x): r'''
... >>> print
range(10)
# Should fail: no ellipsis
... >>> print
(range(10))
# Should fail: no ellipsis
... [0, 1, ..., 9]
...
... >>> print
range(10)
# doctest: +ELLIPSIS
... >>> print
(range(10))
# doctest: +ELLIPSIS
... [0, 1, ..., 9]
...
... >>> print
range(10)
# Should fail: no ellipsis
... >>> print
(range(10))
# Should fail: no ellipsis
... [0, 1, ..., 9]
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
...
...
@@ -1361,7 +1361,7 @@ do not change the options for surrounding examples:
**********************************************************************
File ..., line 2, in f
Failed example:
print
range(10)
# Should fail: no ellipsis
print
(range(10))
# Should fail: no ellipsis
Expected:
[0, 1, ..., 9]
Got:
...
...
@@ -1369,7 +1369,7 @@ do not change the options for surrounding examples:
**********************************************************************
File ..., line 8, in f
Failed example:
print
range(10)
# Should fail: no ellipsis
print
(range(10))
# Should fail: no ellipsis
Expected:
[0, 1, ..., 9]
Got:
...
...
@@ -1380,9 +1380,9 @@ Multiple options may be modified by a single option directive. They
may be separated by whitespace, commas, or both:
>>> def f(x): r'''
... >>> print
range(10)
# Should fail
... >>> print
(range(10))
# Should fail
... [0, 1, ..., 9]
... >>> print
range(10)
# Should succeed
... >>> print
(range(10))
# Should succeed
... ... # doctest: +ELLIPSIS +NORMALIZE_WHITESPACE
... [0, 1, ..., 9]
... '''
...
...
@@ -1392,7 +1392,7 @@ may be separated by whitespace, commas, or both:
**********************************************************************
File ..., line 2, in f
Failed example:
print
range(10)
# Should fail
print
(range(10))
# Should fail
Expected:
[0, 1, ..., 9]
Got:
...
...
@@ -1400,9 +1400,9 @@ may be separated by whitespace, commas, or both:
(1, 2)
>>> def f(x): r'''
... >>> print
range(10)
# Should fail
... >>> print
(range(10))
# Should fail
... [0, 1, ..., 9]
... >>> print
range(10)
# Should succeed
... >>> print
(range(10))
# Should succeed
... ... # doctest: +ELLIPSIS,+NORMALIZE_WHITESPACE
... [0, 1, ..., 9]
... '''
...
...
@@ -1412,7 +1412,7 @@ may be separated by whitespace, commas, or both:
**********************************************************************
File ..., line 2, in f
Failed example:
print
range(10)
# Should fail
print
(range(10))
# Should fail
Expected:
[0, 1, ..., 9]
Got:
...
...
@@ -1420,9 +1420,9 @@ may be separated by whitespace, commas, or both:
(1, 2)
>>> def f(x): r'''
... >>> print
range(10)
# Should fail
... >>> print
(range(10))
# Should fail
... [0, 1, ..., 9]
... >>> print
range(10)
# Should succeed
... >>> print
(range(10))
# Should succeed
... ... # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
... [0, 1, ..., 9]
... '''
...
...
@@ -1432,7 +1432,7 @@ may be separated by whitespace, commas, or both:
**********************************************************************
File ..., line 2, in f
Failed example:
print
range(10)
# Should fail
print
(range(10))
# Should fail
Expected:
[0, 1, ..., 9]
Got:
...
...
@@ -1443,7 +1443,7 @@ The option directive may be put on the line following the source, as
long as a continuation prompt is used:
>>> def f(x): r'''
... >>> print
range(10
)
... >>> print
(range(10)
)
... ... # doctest: +ELLIPSIS
... [0, 1, ..., 9]
... '''
...
...
@@ -1456,12 +1456,12 @@ at the end of any line:
>>> def f(x): r'''
... >>> for x in range(10): # doctest: +ELLIPSIS
... ... print
x,
... 0 1 2 ... 9
... ... print
(x, end=' ')
... 0 1 2 ... 9
...
... >>> for x in range(10):
... ... print
x,
# doctest: +ELLIPSIS
... 0 1 2 ... 9
... ... print
(x, end=' ')
# doctest: +ELLIPSIS
... 0 1 2 ... 9
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
>>> doctest.DocTestRunner(verbose=False).run(test)
...
...
@@ -1473,8 +1473,8 @@ option directive, then they are combined:
>>> def f(x): r'''
... Should fail (option directive not on the last line):
... >>> for x in range(10): # doctest: +ELLIPSIS
... ... print
x,
# doctest: +NORMALIZE_WHITESPACE
... 0 1 2...9
... ... print
(x, end=' ')
# doctest: +NORMALIZE_WHITESPACE
... 0 1 2...9
... '''
>>> test = doctest.DocTestFinder().find(f)[0]
>>> doctest.DocTestRunner(verbose=False).run(test)
...
...
@@ -1486,13 +1486,13 @@ It is an error to have a comment of the form ``# doctest:`` that is
`register_option`:
>>> # Error: Option not registered
>>> s = '>>> print
12
#doctest: +BADOPTION'
>>> s = '>>> print
(12)
#doctest: +BADOPTION'
>>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
Traceback (most recent call last):
ValueError: line 1 of the doctest for s has an invalid option: '+BADOPTION'
>>> # Error: No + or - prefix
>>> s = '>>> print
12
#doctest: ELLIPSIS'
>>> s = '>>> print
(12)
#doctest: ELLIPSIS'
>>> test = doctest.DocTestParser().get_doctest(s, {}, 's', 's.py', 0)
Traceback (most recent call last):
ValueError: line 1 of the doctest for s has an invalid option: 'ELLIPSIS'
...
...
@@ -1519,7 +1519,7 @@ words and expected output are converted to comments:
>>> print(doctest.testsource(test.test_doctest, name))
# Blah blah
#
print
sample_func(22
)
print
(sample_func(22)
)
# Expected:
## 44
#
...
...
@@ -1528,7 +1528,7 @@ words and expected output are converted to comments:
>>> name = 'test.test_doctest.SampleNewStyleClass'
>>> print(doctest.testsource(test.test_doctest, name))
print
'1\n2\n3'
print
('1\n2\n3')
# Expected:
## 1
## 2
...
...
@@ -1537,10 +1537,10 @@ words and expected output are converted to comments:
>>> name = 'test.test_doctest.SampleClass.a_classmethod'
>>> print(doctest.testsource(test.test_doctest, name))
print
SampleClass.a_classmethod(10
)
print
(SampleClass.a_classmethod(10)
)
# Expected:
## 12
print
SampleClass(0).a_classmethod(10
)
print
(SampleClass(0).a_classmethod(10)
)
# Expected:
## 12
<BLANKLINE>
...
...
@@ -1552,7 +1552,7 @@ Create a docstring that we want to debug:
>>> s = '''
... >>> x = 12
... >>> print
x
... >>> print
(x)
... 12
... '''
...
...
@@ -1560,7 +1560,7 @@ Create some fake stdin input, to feed to the debugger:
>>> import tempfile
>>> real_stdin = sys.stdin
>>> sys.stdin = _FakeInput(['next', 'print
x
', 'continue'])
>>> sys.stdin = _FakeInput(['next', 'print
(x)
', 'continue'])
Run the debugger on the docstring, and then restore sys.stdin.
...
...
@@ -1571,7 +1571,7 @@ Run the debugger on the docstring, and then restore sys.stdin.
12
--Return--
> <string>(1)<module>()->None
(Pdb) print
x
(Pdb) print
(x)
12
(Pdb) continue
...
...
@@ -1601,7 +1601,7 @@ def test_pdb_set_trace():
>>> import tempfile
>>> real_stdin = sys.stdin
>>> sys.stdin = _FakeInput([
... 'print
x
', # print data defined by the example
... 'print
(x)
', # print data defined by the example
... 'continue', # stop debugging
... ''])
...
...
@@ -1610,7 +1610,7 @@ def test_pdb_set_trace():
--Return--
> <doctest foo[1]>(1)<module>()->None
-> import pdb; pdb.set_trace()
(Pdb) print
x
(Pdb) print
(x)
42
(Pdb) continue
(0, 2)
...
...
@@ -1628,9 +1628,9 @@ def test_pdb_set_trace():
>>> test = parser.get_doctest(doc, globals(), "foo", "foo.py", 0)
>>> real_stdin = sys.stdin
>>> sys.stdin = _FakeInput([
... 'print
y
', # print data defined in the function
... 'print
(y)
', # print data defined in the function
... 'up', # out of function
... 'print
x
', # print data defined by the example
... 'print
(x)
', # print data defined by the example
... 'continue', # stop debugging
... ''])
...
...
@@ -1641,12 +1641,12 @@ def test_pdb_set_trace():
--Return--
> <doctest test.test_doctest.test_pdb_set_trace[8]>(3)calls_set_trace()->None
-> import pdb; pdb.set_trace()
(Pdb) print
y
(Pdb) print
(y)
2
(Pdb) up
> <doctest foo[1]>(1)<module>()
-> calls_set_trace()
(Pdb) print
x
(Pdb) print
(x)
1
(Pdb) continue
(0, 2)
...
...
@@ -1658,7 +1658,7 @@ def test_pdb_set_trace():
... >>> def f(x):
... ... g(x*2)
... >>> def g(x):
... ... print
x+3
... ... print
(x+3)
... ... import pdb; pdb.set_trace()
... >>> f(3)
... '''
...
...
@@ -1680,7 +1680,7 @@ def test_pdb_set_trace():
-> import pdb; pdb.set_trace()
(Pdb) list
1 def g(x):
2 print
x+3
2 print
(x+3)
3 -> import pdb; pdb.set_trace()
[EOF]
(Pdb) next
...
...
@@ -1737,11 +1737,11 @@ def test_pdb_set_trace_nested():
>>> test = parser.get_doctest(doc, globals(), "foo", "foo.py", 0)
>>> real_stdin = sys.stdin
>>> sys.stdin = _FakeInput([
... 'print
y
', # print data defined in the function
... 'step', 'step', 'step', 'step', 'step', 'step', 'print
z
',
... 'up', 'print
x
',
... 'up', 'print
y
',
... 'up', 'print
foo
',
... 'print
(y)
', # print data defined in the function
... 'step', 'step', 'step', 'step', 'step', 'step', 'print
(z)
',
... 'up', 'print
(x)
',
... 'up', 'print
(y)
',
... 'up', 'print
(foo)
',
... 'continue', # stop debugging
... ''])
...
...
@@ -1751,7 +1751,7 @@ def test_pdb_set_trace_nested():
... sys.stdin = real_stdin
> <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(5)calls_set_trace()
-> self.f1()
(Pdb) print
y
(Pdb) print
(y)
1
(Pdb) step
--Call--
...
...
@@ -1773,22 +1773,22 @@ def test_pdb_set_trace_nested():
(Pdb) step
> <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(13)f2()
-> z = 2
(Pdb) print
z
(Pdb) print
(z)
1
(Pdb) up
> <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(9)f1()
-> self.f2()
(Pdb) print
x
(Pdb) print
(x)
1
(Pdb) up
> <doctest test.test_doctest.test_pdb_set_trace_nested[0]>(5)calls_set_trace()
-> self.f1()
(Pdb) print
y
(Pdb) print
(y)
1
(Pdb) up
> <doctest foo[1]>(1)<module>()
-> calls_set_trace()
(Pdb) print
foo
(Pdb) print
(foo)
*** NameError: name 'foo' is not defined
(Pdb) continue
(0, 2)
...
...
@@ -2099,9 +2099,9 @@ def test_unittest_reportflags():
...
Failed example:
if 1:
print
'a'
print
print
'b'
print
('a')
print
()
print
('b')
Differences (ndiff with -expected +actual):
a
- <BLANKLINE>
...
...
@@ -2185,9 +2185,9 @@ Verbosity can be increased with the optional `verbose` paremter:
ok
Trying:
if 1:
print
'a'
print
print
'b'
print
('a')
print
()
print
('b')
Expecting:
a
<BLANKLINE>
...
...
@@ -2279,19 +2279,19 @@ def old_test1(): r"""
>>> t = Tester(globs={'x': 42}, verbose=0)
>>> t.runstring(r'''
... >>> x = x * 2
... >>> print
x
... >>> print
(x)
... 42
... ''', 'XYZ')
**********************************************************************
Line 3, in XYZ
Failed example:
print
x
print
(x)
Expected:
42
Got:
84
(1, 2)
>>> t.runstring(">>> x = x * 2\n>>> print
x
\n84\n", 'example2')
>>> t.runstring(">>> x = x * 2\n>>> print
(x)
\n84\n", 'example2')
(0, 2)
>>> t.summarize()
**********************************************************************
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment