Skip to content

Commit fe4f4e3

Browse files
committed
Added options to set default tolerance and style
1 parent c10bd98 commit fe4f4e3

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

Diff for: pytest_mpl/plugin.py

+25-4
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,14 @@ def pytest_addoption(parser):
156156
parser.addini('mpl-use-full-test-name', help="use fully qualified test name as the filename.",
157157
type='bool')
158158

159+
style_help = "default style to use for tests, unless specified in the mpl_image_compare decorator"
160+
group.addoption('--mpl-default-style', help=style_help, action='store')
161+
parser.addini('mpl-default-style', help=style_help)
162+
163+
tolerance_help = "default tolerance to use for tests, unless specified in the mpl_image_compare decorator"
164+
group.addoption('--mpl-default-tolerance', help=tolerance_help, action='store')
165+
parser.addini('mpl-default-tolerance', help=tolerance_help)
166+
159167

160168
def pytest_configure(config):
161169

@@ -196,6 +204,12 @@ def pytest_configure(config):
196204
if results_dir is not None:
197205
results_dir = os.path.abspath(results_dir)
198206

207+
default_style = (config.getoption("--mpl-default-style") or
208+
config.getini("mpl-default-style"))
209+
210+
default_tolerance = (config.getoption("--mpl-default-tolerance") or
211+
config.getini("mpl-default-tolerance"))
212+
199213
config.pluginmanager.register(ImageComparison(config,
200214
baseline_dir=baseline_dir,
201215
baseline_relative_dir=baseline_relative_dir,
@@ -204,7 +218,9 @@ def pytest_configure(config):
204218
hash_library=hash_library,
205219
generate_hash_library=generate_hash_lib,
206220
generate_summary=generate_summary,
207-
results_always=results_always))
221+
results_always=results_always,
222+
default_style=default_style,
223+
default_tolerance=default_tolerance))
208224

209225
else:
210226

@@ -260,7 +276,9 @@ def __init__(self,
260276
hash_library=None,
261277
generate_hash_library=None,
262278
generate_summary=None,
263-
results_always=False
279+
results_always=False,
280+
default_style='classic',
281+
default_tolerance=2
264282
):
265283
self.config = config
266284
self.baseline_dir = baseline_dir
@@ -281,6 +299,9 @@ def __init__(self,
281299
self.generate_summary = generate_summary
282300
self.results_always = results_always
283301

302+
self.default_style = default_style
303+
self.default_tolerance = default_tolerance
304+
284305
# Generate the containing dir for all test results
285306
if not self.results_dir:
286307
self.results_dir = Path(tempfile.mkdtemp(dir=self.results_dir))
@@ -451,7 +472,7 @@ def compare_image_to_baseline(self, item, fig, result_dir, summary=None):
451472
summary = {}
452473

453474
compare = get_compare(item)
454-
tolerance = compare.kwargs.get('tolerance', 2)
475+
tolerance = compare.kwargs.get('tolerance', self.default_tolerance)
455476
savefig_kwargs = compare.kwargs.get('savefig_kwargs', {})
456477

457478
baseline_image_ref = self.obtain_baseline_image(item, result_dir)
@@ -612,7 +633,7 @@ def pytest_runtest_call(self, item): # noqa
612633
from matplotlib.testing.decorators import ImageComparisonTest as MplImageComparisonTest
613634
remove_ticks_and_titles = MplImageComparisonTest.remove_text
614635

615-
style = compare.kwargs.get('style', 'classic')
636+
style = compare.kwargs.get('style', self.default_style)
616637
remove_text = compare.kwargs.get('remove_text', False)
617638
backend = compare.kwargs.get('backend', 'agg')
618639

0 commit comments

Comments
 (0)