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
[email protected]
https://mail.python.org/mailman/listinfo/pytest-commit