From c24ffa3b4c777d5ec009eb3fa2a63a3e593ab8d9 Mon Sep 17 00:00:00 2001 From: Leonard Lausen Date: Sun, 8 Oct 2017 12:23:26 +0900 Subject: [PATCH] Fix pytest.parametrize when argnames are specified as kwarg --- _pytest/fixtures.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/_pytest/fixtures.py b/_pytest/fixtures.py index f57031e1a..8d5e0c4b3 100644 --- a/_pytest/fixtures.py +++ b/_pytest/fixtures.py @@ -1037,9 +1037,13 @@ class FixtureManager: if faclist: fixturedef = faclist[-1] if fixturedef.params is not None: - func_params = getattr(getattr(metafunc.function, 'parametrize', None), 'args', [[None]]) + parametrize_func = getattr(metafunc.function, 'parametrize', None) + func_params = getattr(parametrize_func, 'args', [[None]]) # skip directly parametrized arguments - argnames = func_params[0] + if "argnames" in parametrize_func.kwargs: + argnames = parametrize_func.kwargs["argnames"] + else: + argnames = func_params[0] if not isinstance(argnames, (tuple, list)): argnames = [x.strip() for x in argnames.split(",") if x.strip()] if argname not in func_params and argname not in argnames: