Pickup addition positional args passed to _parse_parametrize_ar… (#5483)
Pickup addition positional args passed to _parse_parametrize_args
This commit is contained in:
commit
37fce6c6e5
1
AUTHORS
1
AUTHORS
|
@ -135,6 +135,7 @@ Kale Kundert
|
||||||
Katarzyna Jachim
|
Katarzyna Jachim
|
||||||
Katerina Koukiou
|
Katerina Koukiou
|
||||||
Kevin Cox
|
Kevin Cox
|
||||||
|
Kevin J. Foley
|
||||||
Kodi B. Arfer
|
Kodi B. Arfer
|
||||||
Kostis Anagnostopoulos
|
Kostis Anagnostopoulos
|
||||||
Kristoffer Nordström
|
Kristoffer Nordström
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Fix bug introduced in 4.6.0 causing collection errors when passing
|
||||||
|
more than 2 positional arguments to ``pytest.mark.parametrize``.
|
|
@ -102,10 +102,7 @@ class ParameterSet(namedtuple("ParameterSet", "values, marks, id")):
|
||||||
return cls(parameterset, marks=[], id=None)
|
return cls(parameterset, marks=[], id=None)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _parse_parametrize_args(argnames, argvalues, **_):
|
def _parse_parametrize_args(argnames, argvalues, *args, **kwargs):
|
||||||
"""It receives an ignored _ (kwargs) argument so this function can
|
|
||||||
take also calls from parametrize ignoring scope, indirect, and other
|
|
||||||
arguments..."""
|
|
||||||
if not isinstance(argnames, (tuple, list)):
|
if not isinstance(argnames, (tuple, list)):
|
||||||
argnames = [x.strip() for x in argnames.split(",") if x.strip()]
|
argnames = [x.strip() for x in argnames.split(",") if x.strip()]
|
||||||
force_tuple = len(argnames) == 1
|
force_tuple = len(argnames) == 1
|
||||||
|
|
|
@ -1761,3 +1761,16 @@ class TestMarkersWithParametrization:
|
||||||
result.stdout.fnmatch_lines(
|
result.stdout.fnmatch_lines(
|
||||||
["*test_func_a*0*PASS*", "*test_func_a*2*PASS*", "*test_func_b*10*PASS*"]
|
["*test_func_a*0*PASS*", "*test_func_a*2*PASS*", "*test_func_b*10*PASS*"]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_parametrize_positional_args(self, testdir):
|
||||||
|
testdir.makepyfile(
|
||||||
|
"""
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("a", [1], False)
|
||||||
|
def test_foo(a):
|
||||||
|
pass
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
result = testdir.runpytest()
|
||||||
|
result.assert_outcomes(passed=1)
|
||||||
|
|
Loading…
Reference in New Issue