diff --git a/CHANGELOG b/CHANGELOG index da9f0f10e..8e04fc181 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,10 @@ Changes between 2.4.0 and 2.4.1 - fix dotted filename completion when using argcomplete thanks Anthon van der Neuth. (fixes issue361) +- fix regression when a 1-tuple ("arg",) is used for specifying + parametrization (the values of the parametrization were passed + nested in a tuple). Thanks Donald Stufft. + - merge doc typo fixes, thanks Andy Dirnberger Changes between 2.3.5 and 2.4 diff --git a/_pytest/python.py b/_pytest/python.py index 7ec148ff1..ee326f3ee 100644 --- a/_pytest/python.py +++ b/_pytest/python.py @@ -710,8 +710,8 @@ class Metafunc(FuncargnamesCompatAttr): if not isinstance(argnames, (tuple, list)): argnames = [x.strip() for x in argnames.split(",") if x.strip()] - if len(argnames) == 1: - argvalues = [(val,) for val in argvalues] + if len(argnames) == 1: + argvalues = [(val,) for val in argvalues] if not argvalues: argvalues = [(_notexists,) * len(argnames)] diff --git a/testing/python/collect.py b/testing/python/collect.py index 894eb6a91..abb135a6c 100644 --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -316,6 +316,16 @@ class TestFunction: reprec = testdir.inline_run() reprec.assertoutcome(skipped=1) + def test_single_tuple_unwraps_values(self, testdir): + testdir.makepyfile(""" + import pytest + @pytest.mark.parametrize(('arg',), [(1,)]) + def test_function(arg): + assert arg == 1 + """) + reprec = testdir.inline_run() + reprec.assertoutcome(passed=1) + def test_issue213_parametrize_value_no_equal(self, testdir): testdir.makepyfile(""" import pytest