2 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/9ba85a8955da/ Changeset: 9ba85a8955da Branch: override-fixture-via-parametrization User: bubenkoff Date: 2013-12-10 14:27:29 Summary: Paratrization overrides existing fixtures. Affected #: 2 files
diff -r 4c16e1c06b5d0bcad11840fba22bc7604c1f1fbd -r 9ba85a8955daaa5d0b040fb2143c196bc90d3e54 _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -368,7 +368,6 @@ arg2fixturedefs = metafunc._arg2fixturedefs for param_index, callspec in enumerate(metafunc._calls): for argname, argvalue in callspec.funcargs.items(): - assert argname not in arg2fixturedefs arg2params.setdefault(argname, []).append(argvalue) if argname not in arg2scope: scopenum = callspec._arg2scopenum.get(argname, scopenum_function) @@ -387,7 +386,6 @@ # to make sure we only ever create an according fixturedef on # a per-scope basis. We thus store and cache the fixturedef on the # node related to the scope. - assert argname not in arg2fixturedefs, (argname, arg2fixturedefs) scope = arg2scope[argname] node = None if scope != "function": diff -r 4c16e1c06b5d0bcad11840fba22bc7604c1f1fbd -r 9ba85a8955daaa5d0b040fb2143c196bc90d3e54 testing/python/collect.py --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -372,6 +372,24 @@ rec.assertoutcome(passed=2) + def test_parametrize_overrides_fixture(self, testdir): + """Test parametrization when parameter overrides existing fixture with same name.""" + testdir.makepyfile(""" + import pytest + + @pytest.fixture + def value(): + return 'value' + + @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 https://bitbucket.org/hpk42/pytest/commits/6bc51574e761/ Changeset: 6bc51574e761 User: hpk42 Date: 2013-12-10 14:59:10 Summary: Merged in paylogic/pytest/override-fixture-via-parametrization (pull request #92) Paratrization overrides existing fixtures. Affected #: 2 files diff -r 23152b79f1dc6ad64a2e6a73a327b770352ca6f7 -r 6bc51574e761e06bae5975cb51914a679bd4f60e _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -368,7 +368,6 @@ arg2fixturedefs = metafunc._arg2fixturedefs for param_index, callspec in enumerate(metafunc._calls): for argname, argvalue in callspec.funcargs.items(): - assert argname not in arg2fixturedefs arg2params.setdefault(argname, []).append(argvalue) if argname not in arg2scope: scopenum = callspec._arg2scopenum.get(argname, scopenum_function) @@ -387,7 +386,6 @@ # to make sure we only ever create an according fixturedef on # a per-scope basis. We thus store and cache the fixturedef on the # node related to the scope. - assert argname not in arg2fixturedefs, (argname, arg2fixturedefs) scope = arg2scope[argname] node = None if scope != "function": diff -r 23152b79f1dc6ad64a2e6a73a327b770352ca6f7 -r 6bc51574e761e06bae5975cb51914a679bd4f60e testing/python/collect.py --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -372,6 +372,24 @@ rec.assertoutcome(passed=2) + def test_parametrize_overrides_fixture(self, testdir): + """Test parametrization when parameter overrides existing fixture with same name.""" + testdir.makepyfile(""" + import pytest + + @pytest.fixture + def value(): + return 'value' + + @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/hpk42/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