### Navigation

- index
- modules |
- next |
- previous |
- home|
- search|
- documentation »
- The IPython API »

# Module: `testing.plugin.dtexample`

Simple example using doctests.

This file just contains doctests both using plain python and IPython prompts. All tests should be loaded by nose.

## 6 Functions

`IPython.testing.plugin.dtexample.``pyfunc`()

  Some pure python tests...

      >>> pyfunc()
      'pyfunc'

      >>> import os

      >>> 2+3
      5

      >>> for i in range(3):
      ...     print i,
      ...     print i+1,
      ...
      0 1 1 2 2 3

`IPython.testing.plugin.dtexample.``ipfunc`()

  Some ipython tests...

  In [1]: import os

  In [3]: 2+3 Out[3]: 5

  In [26]: for i in range(3):
    ....: print i, ....: print i+1, ....:

  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’

`IPython.testing.plugin.dtexample.``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’

`IPython.testing.plugin.dtexample.``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...

`IPython.testing.plugin.dtexample.``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’

`IPython.testing.plugin.dtexample.``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’

### Navigation

- index
- modules |
- next |
- previous |
- home|
- search|
- documentation »
- The IPython API »