Skip to content

Commit 89abb18

Browse files
astrofrogConorMacBride
authored andcommitted
Added options to set default tolerance and style
1 parent 517d59b commit 89abb18

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

pytest_mpl/plugin.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,14 @@ def pytest_addoption(parser):
162162
parser.addini('mpl-use-full-test-name', help="use fully qualified test name as the filename.",
163163
type='bool')
164164

165+
style_help = "default style to use for tests, unless specified in the mpl_image_compare decorator"
166+
group.addoption('--mpl-default-style', help=style_help, action='store')
167+
parser.addini('mpl-default-style', help=style_help)
168+
169+
tolerance_help = "default tolerance to use for tests, unless specified in the mpl_image_compare decorator"
170+
group.addoption('--mpl-default-tolerance', help=tolerance_help, action='store')
171+
parser.addini('mpl-default-tolerance', help=tolerance_help)
172+
165173

166174
def pytest_configure(config):
167175

@@ -202,6 +210,12 @@ def pytest_configure(config):
202210
if results_dir is not None:
203211
results_dir = os.path.abspath(results_dir)
204212

213+
default_style = (config.getoption("--mpl-default-style") or
214+
config.getini("mpl-default-style"))
215+
216+
default_tolerance = (config.getoption("--mpl-default-tolerance") or
217+
config.getini("mpl-default-tolerance"))
218+
205219
config.pluginmanager.register(ImageComparison(config,
206220
baseline_dir=baseline_dir,
207221
baseline_relative_dir=baseline_relative_dir,
@@ -210,7 +224,9 @@ def pytest_configure(config):
210224
hash_library=hash_library,
211225
generate_hash_library=generate_hash_lib,
212226
generate_summary=generate_summary,
213-
results_always=results_always))
227+
results_always=results_always,
228+
default_style=default_style,
229+
default_tolerance=default_tolerance))
214230

215231
else:
216232

@@ -266,7 +282,9 @@ def __init__(self,
266282
hash_library=None,
267283
generate_hash_library=None,
268284
generate_summary=None,
269-
results_always=False
285+
results_always=False,
286+
default_style='classic',
287+
default_tolerance=2
270288
):
271289
self.config = config
272290
self.baseline_dir = baseline_dir
@@ -287,6 +305,9 @@ def __init__(self,
287305
self.generate_summary = generate_summary
288306
self.results_always = results_always
289307

308+
self.default_style = default_style
309+
self.default_tolerance = default_tolerance
310+
290311
# Generate the containing dir for all test results
291312
if not self.results_dir:
292313
self.results_dir = Path(tempfile.mkdtemp(dir=self.results_dir))
@@ -467,7 +488,7 @@ def compare_image_to_baseline(self, item, fig, result_dir, summary=None):
467488
summary = {}
468489

469490
compare = get_compare(item)
470-
tolerance = compare.kwargs.get('tolerance', 2)
491+
tolerance = compare.kwargs.get('tolerance', self.default_tolerance)
471492

472493
ext = self._file_extension(item)
473494

@@ -683,7 +704,7 @@ def pytest_runtest_call(self, item): # noqa
683704
from matplotlib.testing.decorators import ImageComparisonTest as MplImageComparisonTest
684705
remove_ticks_and_titles = MplImageComparisonTest.remove_text
685706

686-
style = compare.kwargs.get('style', 'classic')
707+
style = compare.kwargs.get('style', self.default_style)
687708
remove_text = compare.kwargs.get('remove_text', False)
688709
backend = compare.kwargs.get('backend', 'agg')
689710

0 commit comments

Comments
 (0)