Python matplotlib.testing() Examples
The following are 24 code examples for showing how to use matplotlib.testing(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.
You may check out the related API usage on the sidebar.
You may also want to check out all available functions/classes of the module
matplotlib
, or try the search function
.
Example 1
Project: GraphicDesignPatternByPython Author: Relph1119 File: decorators.py License: MIT License | 6 votes |
def switch_backend(backend): def switch_backend_decorator(func): @functools.wraps(func) def backend_switcher(*args, **kwargs): try: prev_backend = mpl.get_backend() matplotlib.testing.setup() plt.switch_backend(backend) return func(*args, **kwargs) finally: plt.switch_backend(prev_backend) return backend_switcher return switch_backend_decorator
Example 2
Project: python3_ios Author: holzschu File: decorators.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def switch_backend(backend): def switch_backend_decorator(func): @functools.wraps(func) def backend_switcher(*args, **kwargs): try: prev_backend = mpl.get_backend() matplotlib.testing.setup() plt.switch_backend(backend) return func(*args, **kwargs) finally: plt.switch_backend(prev_backend) return backend_switcher return switch_backend_decorator
Example 3
Project: coffeegrindsize Author: jgagneastro File: decorators.py License: MIT License | 6 votes |
def switch_backend(backend): def switch_backend_decorator(func): @functools.wraps(func) def backend_switcher(*args, **kwargs): try: prev_backend = mpl.get_backend() matplotlib.testing.setup() plt.switch_backend(backend) return func(*args, **kwargs) finally: plt.switch_backend(prev_backend) return backend_switcher return switch_backend_decorator
Example 4
Project: CogAlg Author: boris-kz File: decorators.py License: MIT License | 6 votes |
def switch_backend(backend): def switch_backend_decorator(func): @functools.wraps(func) def backend_switcher(*args, **kwargs): try: prev_backend = mpl.get_backend() matplotlib.testing.setup() plt.switch_backend(backend) return func(*args, **kwargs) finally: plt.switch_backend(prev_backend) return backend_switcher return switch_backend_decorator
Example 5
Project: twitter-stock-recommendation Author: alvarobartt File: decorators.py License: MIT License | 6 votes |
def switch_backend(backend): # Local import to avoid a hard nose dependency and only incur the # import time overhead at actual test-time. def switch_backend_decorator(func): @functools.wraps(func) def backend_switcher(*args, **kwargs): try: prev_backend = mpl.get_backend() matplotlib.testing.setup() plt.switch_backend(backend) result = func(*args, **kwargs) finally: plt.switch_backend(prev_backend) return result return _copy_metadata(func, backend_switcher) return switch_backend_decorator
Example 6
Project: GraphicDesignPatternByPython Author: Relph1119 File: decorators.py License: MIT License | 5 votes |
def setup(self): func = self.func plt.close('all') self.setup_class() try: matplotlib.style.use(self.style) matplotlib.testing.set_font_settings_for_testing() func() assert len(plt.get_fignums()) == len(self.baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(self.baseline_images))) except: # Restore original settings before raising errors. self.teardown_class() raise
Example 7
Project: GraphicDesignPatternByPython Author: Relph1119 File: decorators.py License: MIT License | 5 votes |
def _image_directories(func): """ Compute the baseline and result image directories for testing *func*. For test module ``foo.bar.test_baz``, the baseline directory is at ``foo/bar/baseline_images/test_baz`` and the result directory at ``$(pwd)/result_images/test_baz``. The result directory is created if it doesn't exist. """ module_path = Path(sys.modules[func.__module__].__file__) baseline_dir = module_path.parent / "baseline_images" / module_path.stem result_dir = Path().resolve() / "result_images" / module_path.stem result_dir.mkdir(parents=True, exist_ok=True) return str(baseline_dir), str(result_dir)
Example 8
Project: python3_ios Author: holzschu File: decorators.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setup(self): func = self.func plt.close('all') self.setup_class() try: matplotlib.style.use(self.style) matplotlib.testing.set_font_settings_for_testing() func() assert len(plt.get_fignums()) == len(self.baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(self.baseline_images))) except: # Restore original settings before raising errors. self.teardown_class() raise
Example 9
Project: python3_ios Author: holzschu File: decorators.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def _image_directories(func): """ Compute the baseline and result image directories for testing *func*. For test module ``foo.bar.test_baz``, the baseline directory is at ``foo/bar/baseline_images/test_baz`` and the result directory at ``$(pwd)/result_images/test_baz``. The result directory is created if it doesn't exist. """ module_path = Path(sys.modules[func.__module__].__file__) baseline_dir = module_path.parent / "baseline_images" / module_path.stem result_dir = Path().resolve() / "result_images" / module_path.stem result_dir.mkdir(parents=True, exist_ok=True) return str(baseline_dir), str(result_dir)
Example 10
Project: msaf Author: urinieto File: mpl_ic.py License: MIT License | 5 votes |
def knownfailureif(fail_condition, msg=None, known_exception_class=None ): """ Assume a will fail if *fail_condition* is True. *fail_condition* may also be False or the string 'indeterminate'. *msg* is the error message displayed for the test. If *known_exception_class* is not None, the failure is only known if the exception is an instance of this class. (Default = None) """ # based on numpy.testing.dec.knownfailureif if msg is None: msg = 'Test known to fail' def known_fail_decorator(f): # Local import to avoid a hard nose dependency and only incur the # import time overhead at actual test-time. import nose def failer(*args, **kwargs): try: # Always run the test (to generate images). result = f(*args, **kwargs) except Exception as err: if fail_condition: if known_exception_class is not None: if not isinstance(err,known_exception_class): # This is not the expected exception raise # (Keep the next ultra-long comment so in shows in console.) raise KnownFailure(msg) # An error here when running nose means that you don't have the matplotlib.testing.noseclasses:KnownFailure plugin in use. else: raise if fail_condition and fail_condition != 'indeterminate': raise KnownFailureDidNotFailTest(msg) return result return nose.tools.make_decorator(f)(failer) return known_fail_decorator
Example 11
Project: msaf Author: urinieto File: mpl_ic.py License: MIT License | 5 votes |
def _do_cleanup(original_units_registry): plt.close('all') gc.collect() import matplotlib.testing matplotlib.testing.setup() matplotlib.units.registry.clear() matplotlib.units.registry.update(original_units_registry) warnings.resetwarnings() # reset any warning filters set in tests
Example 12
Project: msaf Author: urinieto File: mpl_ic.py License: MIT License | 5 votes |
def _image_directories(func): """ Compute the baseline and result image directories for testing *func*. Create the result directory if it doesn't exist. """ module_name = func.__module__ # mods = module_name.split('.') # mods.pop(0) # <- will be the name of the package being tested (in # most cases "matplotlib") # assert mods.pop(0) == 'tests' # subdir = os.path.join(*mods) subdir = module_name import imp def find_dotted_module(module_name, path=None): """A version of imp which can handle dots in the module name""" res = None for sub_mod in module_name.split('.'): try: res = file, path, _ = imp.find_module(sub_mod, path) path = [path] if file is not None: file.close() except ImportError: # assume namespace package path = sys.modules[sub_mod].__path__ res = None, path, None return res mod_file = find_dotted_module(func.__module__)[1] basedir = os.path.dirname(mod_file) baseline_dir = os.path.join(basedir, 'baseline_images', subdir) result_dir = os.path.abspath(os.path.join('result_images', subdir)) if not os.path.exists(result_dir): cbook.mkdirs(result_dir) return baseline_dir, result_dir
Example 13
Project: coffeegrindsize Author: jgagneastro File: decorators.py License: MIT License | 5 votes |
def setup(self): func = self.func plt.close('all') self.setup_class() try: matplotlib.style.use(self.style) matplotlib.testing.set_font_settings_for_testing() func() assert len(plt.get_fignums()) == len(self.baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(self.baseline_images))) except: # Restore original settings before raising errors. self.teardown_class() raise
Example 14
Project: coffeegrindsize Author: jgagneastro File: decorators.py License: MIT License | 5 votes |
def _image_directories(func): """ Compute the baseline and result image directories for testing *func*. For test module ``foo.bar.test_baz``, the baseline directory is at ``foo/bar/baseline_images/test_baz`` and the result directory at ``$(pwd)/result_images/test_baz``. The result directory is created if it doesn't exist. """ module_path = Path(sys.modules[func.__module__].__file__) baseline_dir = module_path.parent / "baseline_images" / module_path.stem result_dir = Path().resolve() / "result_images" / module_path.stem result_dir.mkdir(parents=True, exist_ok=True) return str(baseline_dir), str(result_dir)
Example 15
Project: CogAlg Author: boris-kz File: decorators.py License: MIT License | 5 votes |
def setup(self): func = self.func plt.close('all') self.setup_class() try: matplotlib.style.use(self.style) matplotlib.testing.set_font_settings_for_testing() func() assert len(plt.get_fignums()) == len(self.baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(self.baseline_images))) except: # Restore original settings before raising errors. self.teardown_class() raise
Example 16
Project: CogAlg Author: boris-kz File: decorators.py License: MIT License | 5 votes |
def _image_directories(func): """ Compute the baseline and result image directories for testing *func*. For test module ``foo.bar.test_baz``, the baseline directory is at ``foo/bar/baseline_images/test_baz`` and the result directory at ``$(pwd)/result_images/test_baz``. The result directory is created if it doesn't exist. """ module_path = Path(sys.modules[func.__module__].__file__) baseline_dir = module_path.parent / "baseline_images" / module_path.stem result_dir = Path().resolve() / "result_images" / module_path.stem result_dir.mkdir(parents=True, exist_ok=True) return str(baseline_dir), str(result_dir)
Example 17
Project: twitter-stock-recommendation Author: alvarobartt File: decorators.py License: MIT License | 5 votes |
def setup_class(cls): cls.original_units_registry = matplotlib.units.registry.copy() cls.original_settings = mpl.rcParams.copy() matplotlib.testing.setup()
Example 18
Project: twitter-stock-recommendation Author: alvarobartt File: decorators.py License: MIT License | 5 votes |
def setup(self): func = self.func plt.close('all') self.setup_class() try: matplotlib.style.use(self.style) matplotlib.testing.set_font_settings_for_testing() func() assert len(plt.get_fignums()) == len(self.baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(self.baseline_images))) except: # Restore original settings before raising errors. self.teardown_class() raise
Example 19
Project: GraphicDesignPatternByPython Author: Relph1119 File: decorators.py License: MIT License | 4 votes |
def _pytest_image_comparison(baseline_images, extensions, tol, freetype_version, remove_text, savefig_kwargs, style): """ Decorate function with image comparison for pytest. This function creates a decorator that wraps a figure-generating function with image comparison code. Pytest can become confused if we change the signature of the function, so we indirectly pass anything we need via the `mpl_image_comparison_parameters` fixture and extra markers. """ import pytest extensions = map(_mark_xfail_if_format_is_uncomparable, extensions) def decorator(func): @functools.wraps(func) # Parameter indirection; see docstring above and comment below. @pytest.mark.usefixtures('mpl_image_comparison_parameters') @pytest.mark.parametrize('extension', extensions) @pytest.mark.baseline_images(baseline_images) # END Parameter indirection. @pytest.mark.style(style) @_checked_on_freetype_version(freetype_version) @functools.wraps(func) def wrapper(*args, **kwargs): __tracebackhide__ = True img = _ImageComparisonBase(tol=tol, remove_text=remove_text, savefig_kwargs=savefig_kwargs) img.delayed_init(func) matplotlib.testing.set_font_settings_for_testing() func(*args, **kwargs) # Parameter indirection: # This is hacked on via the mpl_image_comparison_parameters fixture # so that we don't need to modify the function's real signature for # any parametrization. Modifying the signature is very very tricky # and likely to confuse pytest. baseline_images, extension = func.parameters assert len(plt.get_fignums()) == len(baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(baseline_images))) for idx, baseline in enumerate(baseline_images): img.compare(idx, baseline, extension) return wrapper return decorator
Example 20
Project: python3_ios Author: holzschu File: decorators.py License: BSD 3-Clause "New" or "Revised" License | 4 votes |
def _pytest_image_comparison(baseline_images, extensions, tol, freetype_version, remove_text, savefig_kwargs, style): """ Decorate function with image comparison for pytest. This function creates a decorator that wraps a figure-generating function with image comparison code. Pytest can become confused if we change the signature of the function, so we indirectly pass anything we need via the `mpl_image_comparison_parameters` fixture and extra markers. """ import pytest extensions = map(_mark_xfail_if_format_is_uncomparable, extensions) def decorator(func): @functools.wraps(func) # Parameter indirection; see docstring above and comment below. @pytest.mark.usefixtures('mpl_image_comparison_parameters') @pytest.mark.parametrize('extension', extensions) @pytest.mark.baseline_images(baseline_images) # END Parameter indirection. @pytest.mark.style(style) @_checked_on_freetype_version(freetype_version) @functools.wraps(func) def wrapper(*args, **kwargs): __tracebackhide__ = True img = _ImageComparisonBase(tol=tol, remove_text=remove_text, savefig_kwargs=savefig_kwargs) img.delayed_init(func) matplotlib.testing.set_font_settings_for_testing() func(*args, **kwargs) # Parameter indirection: # This is hacked on via the mpl_image_comparison_parameters fixture # so that we don't need to modify the function's real signature for # any parametrization. Modifying the signature is very very tricky # and likely to confuse pytest. baseline_images, extension = func.parameters assert len(plt.get_fignums()) == len(baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(baseline_images))) for idx, baseline in enumerate(baseline_images): img.compare(idx, baseline, extension) return wrapper return decorator
Example 21
Project: coffeegrindsize Author: jgagneastro File: decorators.py License: MIT License | 4 votes |
def _pytest_image_comparison(baseline_images, extensions, tol, freetype_version, remove_text, savefig_kwargs, style): """ Decorate function with image comparison for pytest. This function creates a decorator that wraps a figure-generating function with image comparison code. Pytest can become confused if we change the signature of the function, so we indirectly pass anything we need via the `mpl_image_comparison_parameters` fixture and extra markers. """ import pytest extensions = map(_mark_xfail_if_format_is_uncomparable, extensions) def decorator(func): @functools.wraps(func) # Parameter indirection; see docstring above and comment below. @pytest.mark.usefixtures('mpl_image_comparison_parameters') @pytest.mark.parametrize('extension', extensions) @pytest.mark.baseline_images(baseline_images) # END Parameter indirection. @pytest.mark.style(style) @_checked_on_freetype_version(freetype_version) @functools.wraps(func) def wrapper(*args, **kwargs): __tracebackhide__ = True img = _ImageComparisonBase(tol=tol, remove_text=remove_text, savefig_kwargs=savefig_kwargs) img.delayed_init(func) matplotlib.testing.set_font_settings_for_testing() func(*args, **kwargs) # Parameter indirection: # This is hacked on via the mpl_image_comparison_parameters fixture # so that we don't need to modify the function's real signature for # any parametrization. Modifying the signature is very very tricky # and likely to confuse pytest. baseline_images, extension = func.parameters assert len(plt.get_fignums()) == len(baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(baseline_images))) for idx, baseline in enumerate(baseline_images): img.compare(idx, baseline, extension) return wrapper return decorator
Example 22
Project: CogAlg Author: boris-kz File: decorators.py License: MIT License | 4 votes |
def _pytest_image_comparison(baseline_images, extensions, tol, freetype_version, remove_text, savefig_kwargs, style): """ Decorate function with image comparison for pytest. This function creates a decorator that wraps a figure-generating function with image comparison code. Pytest can become confused if we change the signature of the function, so we indirectly pass anything we need via the `mpl_image_comparison_parameters` fixture and extra markers. """ import pytest extensions = map(_mark_skip_if_format_is_uncomparable, extensions) def decorator(func): @functools.wraps(func) # Parameter indirection; see docstring above and comment below. @pytest.mark.usefixtures('mpl_image_comparison_parameters') @pytest.mark.parametrize('extension', extensions) @pytest.mark.baseline_images(baseline_images) # END Parameter indirection. @pytest.mark.style(style) @_checked_on_freetype_version(freetype_version) @functools.wraps(func) def wrapper(*args, **kwargs): __tracebackhide__ = True img = _ImageComparisonBase(tol=tol, remove_text=remove_text, savefig_kwargs=savefig_kwargs) img.delayed_init(func) matplotlib.testing.set_font_settings_for_testing() func(*args, **kwargs) # Parameter indirection: # This is hacked on via the mpl_image_comparison_parameters fixture # so that we don't need to modify the function's real signature for # any parametrization. Modifying the signature is very very tricky # and likely to confuse pytest. baseline_images, extension = func.parameters assert len(plt.get_fignums()) == len(baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(baseline_images))) for idx, baseline in enumerate(baseline_images): img.compare(idx, baseline, extension) return wrapper return decorator
Example 23
Project: twitter-stock-recommendation Author: alvarobartt File: decorators.py License: MIT License | 4 votes |
def _pytest_image_comparison(baseline_images, extensions, tol, freetype_version, remove_text, savefig_kwargs, style): """ Decorate function with image comparison for pytest. This function creates a decorator that wraps a figure-generating function with image comparison code. Pytest can become confused if we change the signature of the function, so we indirectly pass anything we need via the `mpl_image_comparison_parameters` fixture and extra markers. """ import pytest extensions = map(_mark_xfail_if_format_is_uncomparable, extensions) def decorator(func): # Parameter indirection; see docstring above and comment below. @pytest.mark.usefixtures('mpl_image_comparison_parameters') @pytest.mark.parametrize('extension', extensions) @pytest.mark.baseline_images(baseline_images) # END Parameter indirection. @pytest.mark.style(style) @_checked_on_freetype_version(freetype_version) @functools.wraps(func) def wrapper(*args, **kwargs): __tracebackhide__ = True img = _ImageComparisonBase(tol=tol, remove_text=remove_text, savefig_kwargs=savefig_kwargs) img.delayed_init(func) matplotlib.testing.set_font_settings_for_testing() func(*args, **kwargs) # Parameter indirection: # This is hacked on via the mpl_image_comparison_parameters fixture # so that we don't need to modify the function's real signature for # any parametrization. Modifying the signature is very very tricky # and likely to confuse pytest. baseline_images, extension = func.parameters assert len(plt.get_fignums()) == len(baseline_images), ( "Test generated {} images but there are {} baseline images" .format(len(plt.get_fignums()), len(baseline_images))) for idx, baseline in enumerate(baseline_images): img.compare(idx, baseline, extension) wrapper.__wrapped__ = func # For Python 2.7. return _copy_metadata(func, wrapper) return decorator
Example 24
Project: twitter-stock-recommendation Author: alvarobartt File: decorators.py License: MIT License | 4 votes |
def _image_directories(func): """ Compute the baseline and result image directories for testing *func*. Create the result directory if it doesn't exist. """ module_name = func.__module__ if module_name == '__main__': # FIXME: this won't work for nested packages in matplotlib.tests warnings.warn( 'Test module run as script. Guessing baseline image locations.') script_name = sys.argv[0] basedir = os.path.abspath(os.path.dirname(script_name)) subdir = os.path.splitext(os.path.split(script_name)[1])[0] else: mods = module_name.split('.') if len(mods) >= 3: mods.pop(0) # mods[0] will be the name of the package being tested (in # most cases "matplotlib") However if this is a # namespace package pip installed and run via the nose # multiprocess plugin or as a specific test this may be # missing. See https://github.com/matplotlib/matplotlib/issues/3314 if mods.pop(0) != 'tests': warnings.warn( "Module {!r} does not live in a parent module named 'tests'. " "This is probably ok, but we may not be able to guess the " "correct subdirectory containing the baseline images. If " "things go wrong please make sure that there is a parent " "directory named 'tests' and that it contains a __init__.py " "file (can be empty).".format(module_name)) subdir = os.path.join(*mods) import imp def find_dotted_module(module_name, path=None): """A version of imp which can handle dots in the module name. As for imp.find_module(), the return value is a 3-element tuple (file, pathname, description).""" res = None for sub_mod in module_name.split('.'): try: res = file, path, _ = imp.find_module(sub_mod, path) path = [path] if file is not None: file.close() except ImportError: # assume namespace package path = list(sys.modules[sub_mod].__path__) res = None, path, None return res mod_file = find_dotted_module(func.__module__)[1] basedir = os.path.dirname(mod_file) baseline_dir = os.path.join(basedir, 'baseline_images', subdir) result_dir = os.path.abspath(os.path.join('result_images', subdir)) if not os.path.exists(result_dir): cbook.mkdirs(result_dir) return baseline_dir, result_dir