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