test_ipdoctest.py
80 lines
| 1.7 KiB
| text/x-python
|
PythonLexer
Fernando Perez
|
r1954 | """Tests for the ipdoctest machinery itself. | ||
Note: in a file named test_X, functions whose only test is their docstring (as | ||||
a doctest) and which have no test functionality of their own, should be called | ||||
'doctest_foo' instead of 'test_foo', otherwise they get double-counted (the | ||||
empty function call is counted as a test, which just inflates tests numbers | ||||
artificially). | ||||
""" | ||||
Thomas Kluyver
|
r4892 | from IPython.utils.py3compat import doctest_refactor_print | ||
Fernando Perez
|
r1954 | |||
Thomas Kluyver
|
r4892 | @doctest_refactor_print | ||
Fernando Perez
|
r1954 | def doctest_simple(): | ||
"""ipdoctest must handle simple inputs | ||||
In [1]: 1 | ||||
Out[1]: 1 | ||||
In [2]: print 1 | ||||
1 | ||||
""" | ||||
Thomas Kluyver
|
r4892 | @doctest_refactor_print | ||
Fernando Perez
|
r1954 | def doctest_multiline1(): | ||
"""The ipdoctest machinery must handle multiline examples gracefully. | ||||
Thomas Kluyver
|
r4892 | In [2]: for i in range(4): | ||
...: print i | ||||
Fernando Perez
|
r1954 | ...: | ||
Thomas Kluyver
|
r4892 | 0 | ||
1 | ||||
2 | ||||
3 | ||||
Fernando Perez
|
r1954 | """ | ||
Thomas Kluyver
|
r4892 | @doctest_refactor_print | ||
Fernando Perez
|
r1954 | def doctest_multiline2(): | ||
"""Multiline examples that define functions and print output. | ||||
In [7]: def f(x): | ||||
...: return x+1 | ||||
...: | ||||
In [8]: f(1) | ||||
Out[8]: 2 | ||||
In [9]: def g(x): | ||||
...: print 'x is:',x | ||||
...: | ||||
In [10]: g(1) | ||||
x is: 1 | ||||
In [11]: g('hello') | ||||
x is: hello | ||||
""" | ||||
def doctest_multiline3(): | ||||
"""Multiline examples with blank lines. | ||||
In [12]: def h(x): | ||||
....: if x>1: | ||||
....: return x**2 | ||||
....: # To leave a blank line in the input, you must mark it | ||||
....: # with a comment character: | ||||
....: # | ||||
....: # otherwise the doctest parser gets confused. | ||||
....: else: | ||||
....: return -1 | ||||
....: | ||||
In [13]: h(5) | ||||
Out[13]: 25 | ||||
In [14]: h(1) | ||||
Out[14]: -1 | ||||
In [15]: h(0) | ||||
Out[15]: -1 | ||||
""" | ||||