##// END OF EJS Templates
Inherit the width of pre code inside the input code cells.
Inherit the width of pre code inside the input code cells.

File last commit:

r5390:c82649ea
r13698:8dae3857
Show More
test_ipunittest.py
137 lines | 3.4 KiB | text/x-python | PythonLexer
Tom MacWright
Fix misspellings of IPython in the code....
r2564 """Tests for IPython's test support utilities.
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368
These are decorators that allow standalone functions and docstrings to be seen
as tests by unittest, replicating some of nose's functionality. Additionally,
IPython-syntax docstrings can be auto-converted to '>>>' so that ipython
sessions can be copy-pasted as tests.
This file can be run as a script, and it will call unittest.main(). We must
check that it works with unittest as well as with nose...
Notes:
- Using nosetests --with-doctest --doctest-tests testfile.py
will find docstrings as tests wherever they are, even in methods. But
if we use ipython syntax in the docstrings, they must be decorated with
@ipdocstring. This is OK for test-only code, but not for user-facing
docstrings where we want to keep the ipython syntax.
- Using nosetests --with-doctest file.py
also finds doctests if the file name doesn't have 'test' in it, because it is
treated like a normal module. But if nose treats the file like a test file,
then for normal classes to be doctested the extra --doctest-tests is
necessary.
- running this script with python (it has a __main__ section at the end) misses
one docstring test, the one embedded in the Foo object method. Since our
approach relies on using decorators that create standalone TestCase
Bernardo B. Marques
remove all trailling spaces
r4872 instances, it can only be used for functions, not for methods of objects.
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368 Authors
-------
- Fernando Perez <Fernando.Perez@berkeley.edu>
"""
#-----------------------------------------------------------------------------
Matthias BUSSONNIER
update copyright to 2011/20xx-2011...
r5390 # Copyright (C) 2009-2011 The IPython Development Team
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368 #
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
from IPython.testing.ipunittest import ipdoctest, ipdocstring
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 from IPython.utils.py3compat import doctest_refactor_print
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368
#-----------------------------------------------------------------------------
# Test classes and functions
#-----------------------------------------------------------------------------
@ipdoctest
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368 def simple_dt():
"""
>>> print 1+1
2
"""
@ipdoctest
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368 def ipdt_flush():
"""
In [20]: print 1
1
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 In [26]: for i in range(4):
....: print i
Thomas Kluyver
Restore trailing spaces in certain doctests, which expect there to be trailing spaces.
r4873 ....:
....:
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 0
1
2
3
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368
In [27]: 3+4
Out[27]: 7
"""
@ipdoctest
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368 def ipdt_indented_test():
"""
In [20]: print 1
1
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 In [26]: for i in range(4):
....: print i
Thomas Kluyver
Restore trailing spaces in certain doctests, which expect there to be trailing spaces.
r4873 ....:
....:
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 0
1
2
3
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368
In [27]: 3+4
Out[27]: 7
"""
class Foo(object):
"""For methods, the normal decorator doesn't work.
But rewriting the docstring with ip2py does, *but only if using nose
--with-doctest*. Do we want to have that as a dependency?
"""
@ipdocstring
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368 def ipdt_method(self):
"""
In [20]: print 1
Fernando Perez
Make all non-twisted tests pass....
r2419 1
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 In [26]: for i in range(4):
....: print i
Thomas Kluyver
Restore trailing spaces in certain doctests, which expect there to be trailing spaces.
r4873 ....:
....:
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 0
1
2
3
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368
In [27]: 3+4
Out[27]: 7
"""
Thomas Kluyver
Various fixes for tests in IPython.testing.
r4892 @doctest_refactor_print
Fernando Perez
Add new testing support machinery with better parametric tests....
r2368 def normaldt_method(self):
"""
>>> print 1+1
2
"""