File: C:/Users/fred/anaconda3/Lib/site-packages/astropy/tests/figures/helpers.py
# Licensed under a 3-clause BSD style license - see LICENSE.rst
from functools import wraps
import pytest
from astropy.utils.compat.optional_deps import HAS_PYTEST_MPL
def figure_test(*args, **kwargs):
"""
A decorator that defines a figure test.
This automatically decorates tests with mpl_image_compare with common
options used by all figure tests in astropy, and also adds the decorator
to allow remote data to be accessed.
"""
# NOTE: the savefig_kwargs option below is to avoid using PNG files with
# the matplotlib version embedded since this changes for every developer
# version.
tolerance = kwargs.pop("tolerance", 0)
style = kwargs.pop("style", {})
savefig_kwargs = kwargs.pop("savefig_kwargs", {})
savefig_kwargs["metadata"] = {"Software": None}
def decorator(test_function):
@pytest.mark.remote_data
@pytest.mark.mpl_image_compare(
tolerance=tolerance, style=style, savefig_kwargs=savefig_kwargs, **kwargs
)
@pytest.mark.skipif(
not HAS_PYTEST_MPL, reason="pytest-mpl is required for the figure tests"
)
@wraps(test_function)
def test_wrapper(*args, **kwargs):
return test_function(*args, **kwargs)
return test_wrapper
# If the decorator was used without any arguments, the only positional
# argument will be the test to decorate so we do the following:
if len(args) == 1:
return decorator(*args)
return decorator