Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit dbb78a0

Browse files
committed
TST: add the request fixture to check_figures_equal
If you stacked `pytest.mark.parametrize` with check_figures_equal every set of parameters would write to the same file. This makes post-hoc debugging hard and causes intermittent CI failures.
1 parent dbc35a9 commit dbb78a0

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

lib/matplotlib/testing/decorators.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -388,15 +388,14 @@ def decorator(func):
388388
_, result_dir = _image_directories(func)
389389

390390
@pytest.mark.parametrize("ext", extensions)
391-
def wrapper(*args, ext, **kwargs):
391+
def wrapper(*args, ext, request, **kwargs):
392+
fn = request.node.name
392393
try:
393394
fig_test = plt.figure("test")
394395
fig_ref = plt.figure("reference")
395396
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
396-
test_image_path = result_dir / (func.__name__ + "." + ext)
397-
ref_image_path = result_dir / (
398-
func.__name__ + "-expected." + ext
399-
)
397+
test_image_path = result_dir / (fn + "." + ext)
398+
ref_image_path = result_dir / (fn + "-expected." + ext)
400399
fig_test.savefig(test_image_path)
401400
fig_ref.savefig(ref_image_path)
402401
_raise_on_image_difference(
@@ -411,7 +410,9 @@ def wrapper(*args, ext, **kwargs):
411410
parameters=([param
412411
for param in sig.parameters.values()
413412
if param.name not in {"fig_test", "fig_ref"}]
414-
+ [inspect.Parameter("ext", POSITIONAL_OR_KEYWORD)])
413+
+ [inspect.Parameter("ext", POSITIONAL_OR_KEYWORD),
414+
inspect.Parameter("request", POSITIONAL_OR_KEYWORD),
415+
])
415416
)
416417
wrapper.__signature__ = new_sig
417418

0 commit comments

Comments
 (0)