Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 89c580a

Browse filesBrowse files
committed
TST: Always produce image comparison test result images
1 parent 042ebc7 commit 89c580a
Copy full SHA for 89c580a

File tree

Expand file treeCollapse file tree

1 file changed

+13
-6
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+13
-6
lines changed

‎lib/matplotlib/testing/decorators.py

Copy file name to clipboardExpand all lines: lib/matplotlib/testing/decorators.py
+13-6Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,12 @@ def __init__(self, baseline_images, extensions, tol,
250250
self.savefig_kwargs = savefig_kwargs
251251
self.style = style
252252

253+
def delayed_init(self, func):
254+
assert callable(func), "func must be callable"
255+
assert self.func is None, "it looks like same decorator used twice"
256+
self.func = func
257+
self.baseline_dir, self.result_dir = _image_directories(func)
258+
253259
def setup(self):
254260
func = self.func
255261
self.setup_class()
@@ -275,25 +281,26 @@ def copy_baseline(self, baseline, extension):
275281
orig_expected_fname = baseline_path + '.pdf'
276282
expected_fname = make_test_filename(os.path.join(
277283
self.result_dir, os.path.basename(orig_expected_fname)), 'expected')
278-
actual_fname = os.path.join(self.result_dir, baseline) + '.' + extension
279284
if os.path.exists(orig_expected_fname):
280285
shutil.copyfile(orig_expected_fname, expected_fname)
281286
else:
282287
xfail("Do not have baseline image {0} because this "
283288
"file does not exist: {1}".format(expected_fname,
284289
orig_expected_fname))
285-
return expected_fname, actual_fname
290+
return expected_fname
286291

287292
def compare(self, idx, baseline, extension):
288293
__tracebackhide__ = True
289-
if self.baseline_dir is None:
290-
self.baseline_dir, self.result_dir = _image_directories(self.func)
291-
expected_fname, actual_fname = self.copy_baseline(baseline, extension)
292294
fignum = plt.get_fignums()[idx]
293295
fig = plt.figure(fignum)
296+
294297
if self.remove_text:
295298
remove_ticks_and_titles(fig)
299+
300+
actual_fname = os.path.join(self.result_dir, baseline) + '.' + extension
296301
fig.savefig(actual_fname, **self.savefig_kwargs)
302+
303+
expected_fname = self.copy_baseline(baseline, extension)
297304
raise_on_image_difference(expected_fname, actual_fname, self.tol)
298305

299306
def nose_runner(self):
@@ -324,7 +331,7 @@ def wrapper(idx, baseline, extension):
324331
return wrapper
325332

326333
def __call__(self, func):
327-
self.func = func
334+
self.delayed_init(func)
328335
if is_called_from_pytest():
329336
return copy_metadata(func, self.pytest_runner())
330337
else:

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.