123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- """Simple example using doctests.
- This file just contains doctests both using plain python and IPython prompts.
- All tests should be loaded by nose.
- """
- from __future__ import print_function
- def pyfunc():
- """Some pure python tests...
- >>> pyfunc()
- 'pyfunc'
- >>> import os
- >>> 2+3
- 5
- >>> for i in range(3):
- ... print(i, end=' ')
- ... print(i+1, end=' ')
- ...
- 0 1 1 2 2 3
- """
- return 'pyfunc'
- def ipfunc():
- """Some ipython tests...
- In [1]: import os
- In [3]: 2+3
- Out[3]: 5
- In [26]: for i in range(3):
- ....: print(i, end=' ')
- ....: print(i+1, end=' ')
- ....:
- 0 1 1 2 2 3
- Examples that access the operating system work:
- In [1]: !echo hello
- hello
- In [2]: !echo hello > /tmp/foo_iptest
- In [3]: !cat /tmp/foo_iptest
- hello
- In [4]: rm -f /tmp/foo_iptest
- It's OK to use '_' for the last result, but do NOT try to use IPython's
- numbered history of _NN outputs, since those won't exist under the
- doctest environment:
- In [7]: 'hi'
- Out[7]: 'hi'
- In [8]: print(repr(_))
- 'hi'
-
- In [7]: 3+4
- Out[7]: 7
- In [8]: _+3
- Out[8]: 10
- In [9]: ipfunc()
- Out[9]: 'ipfunc'
- """
- return 'ipfunc'
- def ranfunc():
- """A function with some random output.
- Normal examples are verified as usual:
- >>> 1+3
- 4
- But if you put '# random' in the output, it is ignored:
- >>> 1+3
- junk goes here... # random
- >>> 1+2
- again, anything goes #random
- if multiline, the random mark is only needed once.
- >>> 1+2
- You can also put the random marker at the end:
- # random
- >>> 1+2
- # random
- .. or at the beginning.
- More correct input is properly verified:
- >>> ranfunc()
- 'ranfunc'
- """
- return 'ranfunc'
- def random_all():
- """A function where we ignore the output of ALL examples.
- Examples:
- # all-random
- This mark tells the testing machinery that all subsequent examples should
- be treated as random (ignoring their output). They are still executed,
- so if a they raise an error, it will be detected as such, but their
- output is completely ignored.
- >>> 1+3
- junk goes here...
- >>> 1+3
- klasdfj;
- >>> 1+2
- again, anything goes
- blah...
- """
- pass
- def iprand():
- """Some ipython tests with random output.
- In [7]: 3+4
- Out[7]: 7
- In [8]: print('hello')
- world # random
- In [9]: iprand()
- Out[9]: 'iprand'
- """
- return 'iprand'
- def iprand_all():
- """Some ipython tests with fully random output.
- # all-random
-
- In [7]: 1
- Out[7]: 99
- In [8]: print('hello')
- world
- In [9]: iprand_all()
- Out[9]: 'junk'
- """
- return 'iprand_all'
|