Skip to content

Commit d65acd8

Browse files
committed
Use symlinks instead of copies for test result_images.
1 parent fd48f3e commit d65acd8

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

lib/matplotlib/testing/decorators.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,13 +263,19 @@ def copy_baseline(self, baseline, extension):
263263
os.path.join(self.result_dir,
264264
os.path.basename(orig_expected_fname)),
265265
'expected')
266-
if os.path.exists(orig_expected_fname):
267-
shutil.copyfile(orig_expected_fname, expected_fname)
268-
else:
269-
reason = ("Do not have baseline image {0} because this "
270-
"file does not exist: {1}".format(expected_fname,
271-
orig_expected_fname))
272-
raise ImageComparisonFailure(reason)
266+
try:
267+
if sys.platform == "win32":
268+
shutil.copyfile(orig_expected_fname, expected_fname)
269+
else:
270+
try: # os.symlink errors if the target already exists.
271+
os.remove(expected_fname)
272+
except OSError:
273+
pass
274+
os.symlink(orig_expected_fname, expected_fname)
275+
except OSError:
276+
raise ImageComparisonFailure(
277+
"Do not have baseline image {} because this file cannot be "
278+
"accessed: {}".format(expected_fname, orig_expected_fname))
273279
return expected_fname
274280

275281
def compare(self, idx, baseline, extension):

0 commit comments

Comments
 (0)