##// END OF EJS Templates
Backport PR #2591: Fix for Issue #2584
Backport PR #2591: Fix for Issue #2584

File last commit:

r4892:0707dc54
r9839:28a2010e
Show More
test_ipdoctest.py
80 lines | 1.7 KiB | text/x-python | PythonLexer
Fernando Perez
Add a few tests for ipdoctest itself. Not very complete yet, but a start.
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
Various fixes for tests in IPython.testing.
r4892 from IPython.utils.py3compat import doctest_refactor_print
Fernando Perez
Add a few tests for ipdoctest itself. Not very complete yet, but a start.
r1954
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add a few tests for ipdoctest itself. Not very complete yet, but a start.
r1954 def doctest_simple():
"""ipdoctest must handle simple inputs
In [1]: 1
Out[1]: 1
In [2]: print 1
1
"""
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add a few tests for ipdoctest itself. Not very complete yet, but a start.
r1954 def doctest_multiline1():
"""The ipdoctest machinery must handle multiline examples gracefully.
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 In [2]: for i in range(4):
...: print i
Fernando Perez
Add a few tests for ipdoctest itself. Not very complete yet, but a start.
r1954 ...:
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 0
1
2
3
Fernando Perez
Add a few tests for ipdoctest itself. Not very complete yet, but a start.
r1954 """
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add a few tests for ipdoctest itself. Not very complete yet, but a start.
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
"""