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
globsdictionary 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
optionsinstead.
-
add_options(parser, env=None)¶ Non-camel-case version of func name for backwards compatibility.
Warning
DEPRECATED: Do not use this method, use
optionsinstead.
-
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_DTYPEdoctest 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]'