testing.doctester¶
Module: testing.doctester
¶
Inheritance diagram for nipy.testing.doctester
:
Custom doctester based on Numpy doctester
To run doctests via nose, you’ll need nosetests nipy/testing/doctester.py
--doctest-test
, because this file will be identified as containing tests.
Classes¶
NipyDocTestFinder
¶
-
class
nipy.testing.doctester.
NipyDocTestFinder
(verbose=False, parser=<doctest.DocTestParser instance>, recurse=True, exclude_empty=True)¶ Bases:
nipy.fixes.numpy.testing.noseclasses.NumpyDocTestFinder
Methods
find
(obj[, name, module, globs, extraglobs])Return a list of the DocTests that are defined by the given object’s docstring, or by any of its contained objects’ docstrings. -
__init__
(verbose=False, parser=<doctest.DocTestParser instance>, recurse=True, exclude_empty=True)¶ Create a new doctest finder.
The optional argument parser specifies a class or function that should be used to create new DocTest objects (or objects that implement the same interface as DocTest). The signature for this factory function should match the signature of the DocTest constructor.
If the optional argument recurse is false, then find will only examine the given object, and not any contained objects.
If the optional argument exclude_empty is false, then find will include tests for objects with empty docstrings.
-
find
(obj, name=None, module=None, globs=None, extraglobs=None)¶ Return a list of the DocTests that are defined by the given object’s docstring, or by any of its contained objects’ docstrings.
The optional parameter module is the module that contains the given object. If the module is not specified or is None, then the test finder will attempt to automatically determine the correct module. The object’s module is used:
- As a default namespace, if globs is not specified.
- To prevent the DocTestFinder from extracting DocTests from objects that are imported from other modules.
- To find the name of the file containing the object.
- To help find the line number of the object within its file.
Contained objects whose module does not match module are ignored.
If module is False, no attempt to find the module will be made. This is obscure, of use mostly in tests: if module is False, or is None but cannot be found automatically, then all objects are considered to belong to the (non-existent) module, so all contained objects will (recursively) be searched for doctests.
The globals for each DocTest is formed by combining globs and extraglobs (bindings in extraglobs override bindings in globs). A new copy of the globals dictionary is created for each DocTest. If globs is not specified, then it defaults to the module’s __dict__, if specified, or {} otherwise. If extraglobs is not specified, then it defaults to {}.
-
NipyDoctest
¶
-
class
nipy.testing.doctester.
NipyDoctest
¶ Bases:
nipy.fixes.numpy.testing.noseclasses.NumpyDoctest
Attributes
enableOpt
extension
Methods
addOptions
(parser[, env])Add command-line options for this plugin. add_options
(parser[, env])Non-camel-case version of func name for backwards compatibility. afterContext
()configure
(options, config)doctest_case_class
alias of NumpyDocTestCase
help
()Return help for this plugin. loadTestsFromFile
(filename)Load doctests from the file. loadTestsFromModule
(module)makeTest
(obj, parent)Look for doctests in the given object, which will be a function, method or class. matches
(name)options
(parser[, env])out_check_class
alias of NipyOutputChecker
prepareTestLoader
(loader)Capture loader’s suiteClass. set_test_context
(test)suiteClass
alias of DoctestSuite
test_finder_class
alias of NipyDocTestFinder
tolist
(val)wantFile
(file)-
__init__
()¶
-
addOptions
(parser, env=None)¶ Add command-line options for this plugin.
The base plugin class adds –with-$name by default, used to enable the plugin.
Warning
Don’t implement addOptions unless you want to override all default option handling behavior, including warnings for conflicting options. Implement
options
instead.
-
add_options
(parser, env=None)¶ Non-camel-case version of func name for backwards compatibility.
Warning
DEPRECATED: Do not use this method, use
options
instead.
-
afterContext
()¶
-
can_configure
= False¶
-
configure
(options, config)¶
-
doctest_case_class
¶ alias of
NumpyDocTestCase
-
doctest_ignore
= ['generate_numpy_api.py', 'scons_support.py', 'setupscons.py', 'setup.py']¶
-
doctest_optflags
= 12¶
-
enableOpt
= None¶
-
enabled
= False¶
-
extension
= None¶
-
help
()¶ Return help for this plugin. This will be output as the help section of the –with-$name option that enables the plugin.
-
loadTestsFromFile
(filename)¶ Load doctests from the file.
Tests are loaded only if filename’s extension matches configured doctest extension.
-
loadTestsFromModule
(module)¶
-
makeTest
(obj, parent)¶ Look for doctests in the given object, which will be a function, method or class.
-
matches
(name)¶
-
name
= 'nipydoctest'¶
-
options
(parser, env={'DEB_BUILD_ARCH': 'i386', 'DEB_BUILD_GNU_SYSTEM': 'linux-gnu', 'DEB_BUILD_MULTIARCH': 'i386-linux-gnu', 'DEB_TARGET_MULTIARCH': 'i386-linux-gnu', 'DEB_HOST_GNU_TYPE': 'i686-linux-gnu', 'DEB_BUILD_ARCH_OS': 'linux', 'DEB_TARGET_GNU_CPU': 'i686', 'DEB_TARGET_ARCH_CPU': 'i386', 'FAKEROOTKEY': '1867372829', 'MPLCONFIGDIR': '/build/nipy-YowIDk/nipy-0.3.0+git262-gbb838d7/build', 'USER': 'buildd', 'PATH': '/build/nipy-YowIDk/nipy-0.3.0+git262-gbb838d7/scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games', 'DEB_HOST_ARCH': 'i386', 'HOME': '/build/nipy-YowIDk/nipy-0.3.0+git262-gbb838d7/build', 'DEB_TARGET_ARCH': 'i386', 'LD_LIBRARY_PATH': '/usr/lib/i386-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot', 'MAKEFLAGS': 'w', 'DEB_HOST_ARCH_ENDIAN': 'little', 'LANG': 'C', 'DEB_BUILD_ARCH_BITS': '32', 'TERM': 'unknown', 'SHELL': '/bin/sh', 'DEB_BUILD_ARCH_ENDIAN': 'little', 'MAKELEVEL': '2', 'SHLVL': '1', 'DEB_HOST_GNU_CPU': 'i686', 'DEB_HOST_MULTIARCH': 'i386-linux-gnu', 'PYTHONPATH': '/build/nipy-YowIDk/nipy-0.3.0+git262-gbb838d7/build/lib.linux-i686-2.7', 'SUDO_USER': 'buildd', 'MFLAGS': '-w', 'DEB_BUILD_ARCH_CPU': 'i386', 'DEB_BUILD_GNU_TYPE': 'i686-linux-gnu', 'USERNAME': 'root', 'DH_VERBOSE': '1', 'DEB_HOST_ARCH_BITS': '32', 'SUDO_UID': '2001', 'FAKED_MODE': 'unknown-is-root', 'DEB_HOST_ARCH_OS': 'linux', 'MAIL': '/var/mail/buildd', 'DEB_TARGET_GNU_TYPE': 'i686-linux-gnu', '_': 'debian/rules', 'LD_PRELOAD': 'libfakeroot-sysv.so', 'SUDO_COMMAND': "/usr/sbin/chroot /home/buildd/build-PACKAGEBUILD-41390/chroot-autobuild su buildd -s /bin/sh -c cd '/build/nipy-YowIDk/nipy-0.3.0+git262-gbb838d7' && 'dpkg-buildpackage' '-us' '-uc' '-mLaunchpad Build Daemon <buildd@builder210>' '-b' '-rfakeroot'", 'SUDO_GID': '2501', 'OLDPWD': '/build/nipy-YowIDk/nipy-0.3.0+git262-gbb838d7', 'DEB_HOST_ARCH_CPU': 'i386', 'DEB_TARGET_ARCH_BITS': '32', 'PWD': '/build/nipy-YowIDk/nipy-0.3.0+git262-gbb838d7/doc', 'DEB_BUILD_GNU_CPU': 'i686', 'LOGNAME': 'buildd', 'DEB_HOST_GNU_SYSTEM': 'linux-gnu', 'DEB_TARGET_GNU_SYSTEM': 'linux-gnu', 'DEB_TARGET_ARCH_OS': 'linux', 'DEB_TARGET_ARCH_ENDIAN': 'little'})¶
-
out_check_class
¶ alias of
NipyOutputChecker
-
prepareTestLoader
(loader)¶ Capture loader’s suiteClass.
This is used to create test suites from doctest files.
-
score
= 1000¶
-
set_test_context
(test)¶
-
suiteClass
¶ alias of
DoctestSuite
-
test_finder_class
¶ alias of
NipyDocTestFinder
-
tolist
(val)¶
-
wantFile
(file)¶
-
NipyOutputChecker
¶
-
class
nipy.testing.doctester.
NipyOutputChecker
¶ Bases:
nipy.fixes.numpy.testing.noseclasses.NumpyOutputChecker
Methods
check_output
(want, got, optionflags)output_difference
(example, got, optionflags)Return a string describing the differences between the expected output for a given example (example) and the actual output (got). -
check_output
(want, got, optionflags)¶
-
output_difference
(example, got, optionflags)¶ Return a string describing the differences between the expected output for a given example (example) and the actual output (got). optionflags is the set of option flags used to compare want and got.
-
Functions¶
-
nipy.testing.doctester.
ignore_dtype
(in_str)¶ Removes dtype=[dtype] from string in_str
Parameters: in_str : str
String maybe containing dtype specifier
Returns: out_str : str
String from which the dtype specifier has been removed.
Examples
>>> arr = np.arange(5, dtype='i2')
Here’s the normal repr:
>>> arr array([0, 1, 2, 3, 4], dtype=int16)
The repr with the dtype bits removed
>>> ignore_dtype(repr(arr)) 'array([0, 1, 2, 3, 4])' >>> ignore_dtype('something(again, dtype=something)') 'something(again)'
Even if there are more closed brackets after the dtype
>>> ignore_dtype('something(again, dtype=something) (1, 2)') 'something(again) (1, 2)'
We need the close brackets to match
>>> ignore_dtype('again, dtype=something') 'again, dtype=something'
-
nipy.testing.doctester.
round_numbers
(in_str, precision)¶ Replace fp numbers in in_str with numbers rounded to precision
Parameters: in_str : str
string possibly containing floating point numbers
precision : int
number of decimal places to round to
Returns: out_str : str
in_str with any floating point numbers replaced with same numbers rounded to precision decimal places.
Examples
>>> round_numbers('A=0.234, B=12.345', 2) 'A=0.23, B=12.35'
Rounds the floating point value as it finds it in the string. This is even true for numbers with exponentials. Remember that:
>>> '%.3f' % 0.3339e-10 '0.000'
This routine will recognize an exponential as something to process, but only works on the decimal part (leaving the exponential part is it is):
>>> round_numbers('(0.3339e-10, "string")', 3) '(0.334e-10, "string")'
-
nipy.testing.doctester.
strip_array_repr
(in_str)¶ Removes array-specific part of repr from string in_str
This parser only works on lines that contain only an array repr (and therefore start with
array
, and end with a close parenthesis. To remove dtypes in array reprs that may be somewhere within the line, use theIGNORE_DTYPE
doctest option.Parameters: in_str : str
String maybe containing a repr for an array
Returns: out_str : str
String from which the array specific parts of the repr have been removed.
Examples
>>> arr = np.arange(5, dtype='i2')
Here’s the normal repr:
>>> arr array([0, 1, 2, 3, 4], dtype=int16)
The repr with the ‘array’ bits removed:
>>> strip_array_repr(repr(arr)) '[0, 1, 2, 3, 4]'