@@ -343,6 +343,7 @@ def _pytest_image_comparison(baseline_images, extensions, tol,
343
343
def decorator (func ):
344
344
@pytest .mark .usefixtures ('mpl_image_comparison_parameters' )
345
345
@pytest .mark .parametrize ('extension' , extensions )
346
+ @pytest .mark .baseline_images (baseline_images )
346
347
@pytest .mark .style (style )
347
348
@_checked_on_freetype_version (freetype_version )
348
349
@functools .wraps (func )
@@ -358,7 +359,7 @@ def wrapper(*args, **kwargs):
358
359
# so that we don't need to modify the function's real signature for
359
360
# any parametrization. Modifying the signature is very very tricky
360
361
# and likely to confuse pytest.
361
- extension , = func .parameters
362
+ baseline_images , extension = func .parameters
362
363
363
364
assert len (plt .get_fignums ()) == len (baseline_images ), (
364
365
"Test generated {} images but there are {} baseline images"
@@ -372,7 +373,7 @@ def wrapper(*args, **kwargs):
372
373
return decorator
373
374
374
375
375
- def image_comparison (baseline_images = None , extensions = None , tol = 0 ,
376
+ def image_comparison (baseline_images , extensions = None , tol = 0 ,
376
377
freetype_version = None , remove_text = False ,
377
378
savefig_kwarg = None ,
378
379
# Default of mpl_test_settings fixture and cleanup too.
@@ -384,10 +385,14 @@ def image_comparison(baseline_images=None, extensions=None, tol=0,
384
385
385
386
Arguments
386
387
---------
387
- baseline_images : list
388
+ baseline_images : list or None
388
389
A list of strings specifying the names of the images generated by
389
390
calls to :meth:`matplotlib.figure.savefig`.
390
391
392
+ If *None*, the test function must use the ``baseline_images`` fixture,
393
+ either as a parameter or with pytest.mark.usefixtures. This value is
394
+ only allowed when using pytest.
395
+
391
396
extensions : [ None | list ]
392
397
393
398
If None, defaults to all supported extensions.
@@ -414,9 +419,6 @@ def image_comparison(baseline_images=None, extensions=None, tol=0,
414
419
'_classic_test' style.
415
420
416
421
"""
417
- if baseline_images is None :
418
- raise ValueError ('baseline_images must be specified' )
419
-
420
422
if extensions is None :
421
423
# default extensions to test
422
424
extensions = ['png' , 'pdf' , 'svg' ]
@@ -431,6 +433,9 @@ def image_comparison(baseline_images=None, extensions=None, tol=0,
431
433
freetype_version = freetype_version , remove_text = remove_text ,
432
434
savefig_kwargs = savefig_kwarg , style = style )
433
435
else :
436
+ if baseline_images is None :
437
+ raise ValueError ('baseline_images must be specified' )
438
+
434
439
return ImageComparisonDecorator (
435
440
baseline_images = baseline_images , extensions = extensions , tol = tol ,
436
441
freetype_version = freetype_version , remove_text = remove_text ,
0 commit comments