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
[source]¶ Bases:
nipy.fixes.numpy.testing.noseclasses.NumpyDoctest
-
__init__
()¶ Initialize self. See help(type(self)) for accurate signature.
-
name
= 'nipydoctest'¶
-
out_check_class
¶ alias of
NipyOutputChecker
-
set_test_context
(test)[source]¶ Configure test object to set test context
We set the numpy / scipy standard doctest namespace
- Parameters
test : test object
with
globs
dictionary defining namespace- Returns
None
Notes
test object modified in place
-
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)¶ Configure plugin.
-
doctest_case_class
¶ alias of
nipy.fixes.numpy.testing.noseclasses.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)¶ Load doctests from the module.
-
makeTest
(obj, parent)¶ Look for doctests in the given object, which will be a function, method or class.
-
matches
(name)¶
-
prepareTestLoader
(loader)¶ Capture loader’s suiteClass.
This is used to create test suites from doctest files.
-
score
= 1000¶
-
suiteClass
¶ alias of
nose.plugins.doctests.DoctestSuite
-
test_finder_class
¶ alias of
nipy.fixes.numpy.testing.noseclasses.NumpyDocTestFinder
-
tolist
(val)¶
-
wantFile
(file)¶ Override to select all modules and any file ending with configured doctest extension.
-
NipyOutputChecker
¶
-
class
nipy.testing.doctester.
NipyOutputChecker
[source]¶ Bases:
nipy.fixes.numpy.testing.noseclasses.NumpyOutputChecker
-
__init__
($self, /, *args, **kwargs)¶ Initialize self. See help(type(self)) for accurate signature.
-
check_output
(want, got, optionflags)[source]¶ Return True iff the actual output from an example (got) matches the expected output (want). These strings are always considered to match if they are identical; but depending on what option flags the test runner is using, several non-exact match types are also possible. See the documentation for TestRunner for more information about option flags.
-
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)[source]¶ 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)[source]¶ 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)[source]¶ 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]'