1 new commit in pytest: https://bitbucket.org/pytest-dev/pytest/commits/36e8f6d683da/ Changeset: 36e8f6d683da Branch: parametrized-fixture-override User: bubenkoff Date: 2015-03-01 14:15:37+00:00 Summary: support override of the parametrized fixture on the test level Affected #: 2 files
diff -r c42b1e36a89affdbc168833652f659025a8bc5b6 -r 36e8f6d683da6908f9c5fe76c02c013302903808 _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1716,9 +1716,12 @@ continue # will raise FixtureLookupError at setup time for fixturedef in faclist[-1:]: if fixturedef.params is not None: - metafunc.parametrize(argname, fixturedef.params, - indirect=True, scope=fixturedef.scope, - ids=fixturedef.ids) + func_params = getattr(getattr(metafunc.function, 'parametrize', None), 'args', [[None]]) + # skip directly parametrized arguments + if argname not in func_params and argname not in func_params[0]: + metafunc.parametrize(argname, fixturedef.params, + indirect=True, scope=fixturedef.scope, + ids=fixturedef.ids) def pytest_collection_modifyitems(self, items): # separate parametrized setups diff -r c42b1e36a89affdbc168833652f659025a8bc5b6 -r 36e8f6d683da6908f9c5fe76c02c013302903808 testing/python/collect.py --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -401,6 +401,23 @@ rec.assertoutcome(passed=1) + def test_parametrize_overrides_parametrized_fixture(self, testdir): + """Test parametrization when parameter overrides existing parametrized fixture with same name.""" + testdir.makepyfile(""" + import pytest + + @pytest.fixture(params=[1, 2]) + def value(request): + return request.param + + @pytest.mark.parametrize('value', + ['overrided']) + def test_overrided_via_param(value): + assert value == 'overrided' + """) + rec = testdir.inline_run() + rec.assertoutcome(passed=1) + def test_parametrize_with_mark(selfself, testdir): items = testdir.getitems(""" import pytest Repository URL: https://bitbucket.org/pytest-dev/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit