##// END OF EJS Templates
Removed ipapi compatability layer and updated top-level functions....
Removed ipapi compatability layer and updated top-level functions. The ipapi.py module has been completely deprecated as of this point. No new code should use it and all existing code that uses it will migrate away from it. The launch_new_instance function has been moved to ipapp and the setup.py scripts have been updated.

File last commit:

r1955:51bbbb6f
r2269:d6c98ebc
Show More
test_ipdoctest.py
94 lines | 2.1 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).
"""
def doctest_simple():
"""ipdoctest must handle simple inputs
In [1]: 1
Out[1]: 1
In [2]: print 1
1
"""
Fernando Perez
Ensure that we don't damage the __builtins__ object after %run....
r1955 def doctest_run_builtins():
"""Check that %run doesn't damage __builtins__ via a doctest.
This is similar to the test_run_builtins, but I want *both* forms of the
test to catch any possible glitches in our testing machinery, since that
modifies %run somewhat. So for this, we have both a normal test (below)
and a doctest (this one).
In [1]: import tempfile
In [3]: f = tempfile.NamedTemporaryFile()
In [4]: f.write('pass\\n')
In [5]: f.flush()
In [7]: %run $f.name
"""
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.
In [2]: for i in range(10):
...: print i,
...:
0 1 2 3 4 5 6 7 8 9
"""
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
"""