summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing/plugin/pytestplugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/testing/plugin/pytestplugin.py')
-rw-r--r--lib/sqlalchemy/testing/plugin/pytestplugin.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/sqlalchemy/testing/plugin/pytestplugin.py b/lib/sqlalchemy/testing/plugin/pytestplugin.py
index fa7d2ca19..cea07b305 100644
--- a/lib/sqlalchemy/testing/plugin/pytestplugin.py
+++ b/lib/sqlalchemy/testing/plugin/pytestplugin.py
@@ -741,13 +741,18 @@ class PytestFixtureFunctions(plugin_base.FixtureFunctions):
fn._sa_parametrize.append((argnames, pytest_params))
return fn
else:
+ _fn_argnames = inspect.getfullargspec(fn).args[1:]
if argnames is None:
- _argnames = inspect.getfullargspec(fn).args[1:]
+ _argnames = _fn_argnames
else:
_argnames = re.split(r", *", argnames)
if has_exclusions:
- _argnames += ["_exclusions"]
+ existing_exl = sum(
+ 1 for n in _fn_argnames if n.startswith("_exclusions")
+ )
+ current_exclusion_name = f"_exclusions_{existing_exl}"
+ _argnames += [current_exclusion_name]
@_pytest_fn_decorator
def check_exclusions(fn, *args, **kw):
@@ -755,13 +760,10 @@ class PytestFixtureFunctions(plugin_base.FixtureFunctions):
if _exclusions:
exlu = exclusions.compound().add(*_exclusions)
fn = exlu(fn)
- return fn(*args[0:-1], **kw)
-
- def process_metadata(spec):
- spec.args.append("_exclusions")
+ return fn(*args[:-1], **kw)
fn = check_exclusions(
- fn, add_positional_parameters=("_exclusions",)
+ fn, add_positional_parameters=(current_exclusion_name,)
)
return pytest.mark.parametrize(_argnames, pytest_params)(fn)