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¶
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 NumpyDocTestFinder
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', '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': 'amd64', 'DEB_BUILD_GNU_SYSTEM': 'linux-gnu', 'DEB_BUILD_MULTIARCH': 'x86_64-linux-gnu', 'DEB_TARGET_MULTIARCH': 'x86_64-linux-gnu', 'DEB_HOST_GNU_TYPE': 'x86_64-linux-gnu', 'DEB_BUILD_ARCH_OS': 'linux', 'DEB_TARGET_GNU_CPU': 'x86_64', 'DEB_BUILD_ARCH_CPU': 'amd64', 'DEB_BUILD_OPTIONS': 'parallel=16', 'DEB_TARGET_ARCH_CPU': 'amd64', 'PBUILDER_OPERATION': 'build', 'DEB_BUILD_ARCH_ABI': 'base', 'FAKEROOTKEY': '1241279003', 'MPLCONFIGDIR': '/build/nipy-0.4.1/build', 'DEB_BUILD_ARCH_LIBC': 'gnu', 'HOME': '/build/nipy-0.4.1/build', 'DEB_HOST_ARCH': 'amd64', 'PATH': '/build/nipy-0.4.1/debian/tmp/usr/bin/:/usr/sbin:/usr/bin:/sbin:/bin', 'DEB_TARGET_ARCH': 'amd64', 'PBCURRENTCOMMANDLINEOPERATION': 'build', 'LD_LIBRARY_PATH': '/usr/lib/x86_64-linux-gnu/libfakeroot:/usr/lib64/libfakeroot:/usr/lib32/libfakeroot', 'MAKEFLAGS': 'w', 'DEB_HOST_ARCH_ENDIAN': 'little', 'LANG': 'C', 'DEB_BUILD_ARCH_BITS': '64', 'TERM': 'screen', 'SHELL': '/bin/bash', 'DEB_TARGET_ARCH_LIBC': 'gnu', 'DEB_BUILD_ARCH_ENDIAN': 'little', 'MAKELEVEL': '2', 'SHLVL': '4', 'PBUILDER_PKGLIBDIR': '/usr/lib/pbuilder', 'DEB_TARGET_GNU_TYPE': 'x86_64-linux-gnu', 'DEB_HOST_GNU_CPU': 'x86_64', 'COWDANCER_ILISTFILE': '/.ilist', 'DEBIAN_FRONTEND': 'noninteractive', 'DEB_BUILD_GNU_TYPE': 'x86_64-linux-gnu', 'DEB_HOST_MULTIARCH': 'x86_64-linux-gnu', 'PYTHONPATH': '/build/nipy-0.4.1/build/lib.linux-x86_64-2.7', 'SUDO_USER': 'neurodebian', 'DEB_HOST_ARCH_ABI': 'base', 'MFLAGS': '-w', 'SOURCE_DATE_EPOCH': '1513626497', 'DEB_HOST_ARCH_LIBC': 'gnu', 'USERNAME': 'root', 'PBUILDER_PKGDATADIR': '/usr/share/pbuilder', 'DH_VERBOSE': '1', 'DEB_HOST_ARCH_BITS': '64', 'SUDO_UID': '1234', 'FAKED_MODE': 'unknown-is-root', 'DEB_HOST_ARCH_OS': 'linux', 'MAIL': '/var/mail/root', 'LC_ALL': 'C', 'PBUILDER_SYSCONFDIR': '/etc', '_': '/usr/bin/unshare', 'LD_PRELOAD': 'libfakeroot-sysv.so', 'SUDO_COMMAND': '/usr/bin/nd_build4allnd nipy_0.4.1-2.dsc', 'SUDO_GID': '1234', 'DEB_TARGET_GNU_SYSTEM': 'linux-gnu', 'OLDPWD': '/build/nipy-0.4.1', 'COWDANCER_REUSE': 'yes', 'DEB_HOST_ARCH_CPU': 'amd64', 'DEB_TARGET_ARCH_BITS': '64', 'PWD': '/build/nipy-0.4.1/doc', 'DEB_BUILD_GNU_CPU': 'x86_64', 'DEB_TARGET_ARCH_ENDIAN': 'little', 'COLORTERM': 'yes', 'LOGNAME': 'pbuilder', 'DEB_HOST_GNU_SYSTEM': 'linux-gnu', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:', 'DEB_TARGET_ARCH_OS': 'linux', 'DEB_TARGET_ARCH_ABI': 'base', 'USER': 'pbuilder'})¶
-
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
NumpyDocTestFinder
-
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]'