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

Reply via email to