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

Skip to content

Commit 7540cdd

Browse files
authored
Merge pull request #16800 from QuLogic/checkfigeq
Fix check_figures_equal for tests that use its fixtures.
2 parents 6bba974 + 6340b34 commit 7540cdd

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

lib/matplotlib/testing/decorators.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -389,9 +389,17 @@ def decorator(func):
389389
import pytest
390390

391391
_, result_dir = _image_directories(func)
392+
old_sig = inspect.signature(func)
392393

393394
@pytest.mark.parametrize("ext", extensions)
394-
def wrapper(*args, ext, request, **kwargs):
395+
def wrapper(*args, **kwargs):
396+
ext = kwargs['ext']
397+
if 'ext' not in old_sig.parameters:
398+
kwargs.pop('ext')
399+
request = kwargs['request']
400+
if 'request' not in old_sig.parameters:
401+
kwargs.pop('request')
402+
395403
file_name = "".join(c for c in request.node.name
396404
if c in ALLOWED_CHARS)
397405
try:
@@ -409,16 +417,16 @@ def wrapper(*args, ext, request, **kwargs):
409417
plt.close(fig_test)
410418
plt.close(fig_ref)
411419

412-
sig = inspect.signature(func)
413-
new_sig = sig.replace(
414-
parameters=([param
415-
for param in sig.parameters.values()
416-
if param.name not in {"fig_test", "fig_ref"}]
417-
+ [
418-
inspect.Parameter("ext", KEYWORD_ONLY),
419-
inspect.Parameter("request", KEYWORD_ONLY),
420-
])
421-
)
420+
parameters = [
421+
param
422+
for param in old_sig.parameters.values()
423+
if param.name not in {"fig_test", "fig_ref"}
424+
]
425+
if 'ext' not in old_sig.parameters:
426+
parameters += [inspect.Parameter("ext", KEYWORD_ONLY)]
427+
if 'request' not in old_sig.parameters:
428+
parameters += [inspect.Parameter("request", KEYWORD_ONLY)]
429+
new_sig = old_sig.replace(parameters=parameters)
422430
wrapper.__signature__ = new_sig
423431

424432
# reach a bit into pytest internals to hoist the marks from

0 commit comments

Comments
 (0)