@@ -390,11 +390,14 @@ def generate_baseline_image(self, item, fig):
390390 if not os .path .exists (self .generate_dir ):
391391 os .makedirs (self .generate_dir )
392392
393- fig .savefig (str ((self .generate_dir / self .generate_filename (item )).absolute ()),
394- ** savefig_kwargs )
393+ baseline_filename = self .generate_filename (item )
394+ baseline_path = (self .generate_dir / baseline_filename ).absolute ()
395+ fig .savefig (str (baseline_path ), ** savefig_kwargs )
395396
396397 close_mpl_figure (fig )
397398
399+ return baseline_path
400+
398401 def generate_image_hash (self , item , fig ):
399402 """
400403 For a `matplotlib.figure.Figure`, returns the SHA256 hash as a hexadecimal
@@ -597,6 +600,7 @@ def item_function_wrapper(*args, **kwargs):
597600 remove_ticks_and_titles (fig )
598601
599602 test_name = self .generate_test_name (item )
603+ result_dir = self .make_test_results_dir (item )
600604
601605 summary = {
602606 'status' : None ,
@@ -615,20 +619,20 @@ def item_function_wrapper(*args, **kwargs):
615619 if self .generate_dir is not None :
616620 summary ['status' ] = 'skipped'
617621 summary ['status_msg' ] = 'Skipped test, since generating image.'
618- self .generate_baseline_image (item , fig )
619- if self .generate_hash_library is None :
620- self ._test_results [str (pathify (test_name ))] = summary
621- pytest .skip ("Skipping test, since generating image." )
622+ generate_image = self .generate_baseline_image (item , fig )
623+ if self .results_always : # Make baseline image available in HTML
624+ result_image = (result_dir / "baseline.png" ).absolute ()
625+ shutil .copy (generate_image , result_image )
626+ summary ['baseline_image' ] = \
627+ result_image .relative_to (self .results_dir ).as_posix ()
622628
623629 if self .generate_hash_library is not None :
624630 image_hash = self .generate_image_hash (item , fig )
625631 self ._generated_hash_library [test_name ] = image_hash
626- summary ['result_hash ' ] = image_hash
632+ summary ['baseline_hash ' ] = image_hash
627633
628634 # Only test figures if not generating images
629635 if self .generate_dir is None :
630- result_dir = self .make_test_results_dir (item )
631-
632636 # Compare to hash library
633637 if self .hash_library or compare .kwargs .get ('hash_library' , None ):
634638 msg = self .compare_image_to_hash_library (item , fig , result_dir , summary = summary )
@@ -645,12 +649,15 @@ def item_function_wrapper(*args, **kwargs):
645649 for image_type in ['baseline_image' , 'diff_image' , 'result_image' ]:
646650 summary [image_type ] = None # image no longer exists
647651 else :
648- self ._test_results [str ( pathify ( test_name )) ] = summary
652+ self ._test_results [test_name ] = summary
649653 pytest .fail (msg , pytrace = False )
650654
651655 close_mpl_figure (fig )
652656
653- self ._test_results [str (pathify (test_name ))] = summary
657+ self ._test_results [test_name ] = summary
658+
659+ if summary ['status' ] == 'skipped' :
660+ pytest .skip (summary ['status_msg' ])
654661
655662 if item .cls is not None :
656663 setattr (item .cls , item .function .__name__ , item_function_wrapper )
0 commit comments