testing_utils.py

testing_utils.py

Define utils for use in testing.

class openmdao.utils.testing_utils.MissingImports(missing_imports)[source]

Bases: object

ContextManager that emulates missing python packages or modules.

Each import is checked to see if it starts with a missing import.

For instance:

>>> with MissingImports('matplotlib'):
>>>    from matplotlib.pyplot import plt

will fail because ‘matplotlib.pyplot’.startswith(‘matplotlib’) is True.

This implementation modifies builtins.__import__ which is allowed but highly discouraged according to the documentation, but implementing a MetaPathFinder seemed like overkill. Use at your own risk.

Parameters
missing_importsstr or Sequence of str

A string or sequence of strings that denotes modules that should appear to be absent for testing purposes.

Attributes
missing_importsstr or Sequence of str

A string or sequence of strings that denotes modules that should appear to be absent for testing purposes.

_cached_importNone or builtin

A cached import to emulate the missing import

__init__(missing_imports)[source]

Initialize attributes.

openmdao.utils.testing_utils.parameterized_name(testcase_func, num, param)[source]

Generate a name for a parameterized test from the parameters.

Parameters
testcase_funcstr

the root test function name

numint

parameter number

paramany

parameter value

Returns
TestCase or TestCase.method

The decorated TestCase class or method.

openmdao.utils.testing_utils.require_pyoptsparse(optimizer=None)[source]

Decorate test to raise a skiptest if a required pyoptsparse optimizer cannot be imported.

Parameters
optimizerstr

Pyoptsparse optimizer string. Default is None, which just checks for pyoptsparse.

Returns
TestCase or TestCase.method

The decorated TestCase class or method.

class openmdao.utils.testing_utils.set_env_vars(**envs)[source]

Bases: object

Decorate a function to temporarily set some environment variables.

Parameters
**envsdict

Keyword args corresponding to environment variables to set.

Attributes
envsdict

Saved mapping of environment var name to value.

__init__(**envs)[source]

Initialize attributes.

openmdao.utils.testing_utils.set_env_vars_context(**kwargs)[source]

Context to temporarily set some environment variables.

Parameters
**kwargsdict

Keyword args corresponding to environment variables to set.

Yields
None
openmdao.utils.testing_utils.use_tempdirs(cls)[source]

Decorate each test in a unittest.TestCase so it runs in its own directory.

TestCase methods setUp and tearDown are replaced with _new_setup and _new_teardown, above. Method _new_setup creates a temporary directory in which to run the test, stores it in self.tempdir, and then calls the original setUp method. Method _new_teardown first runs the original tearDown method, and then returns to the original starting directory and deletes the temporary directory.

Returns
TestCase

The decorated TestCase class.

Attributes
clsTestCase

TestCase being decorated to use a tempdir for each test.