Merge remote-tracking branch 'upstream/features' into features

This commit is contained in:
turturica 2018-04-24 13:45:10 -07:00
commit d483b401ee
3 changed files with 14 additions and 0 deletions

View File

@ -871,6 +871,11 @@ class FixtureFunctionMarker(object):
if isclass(function):
raise ValueError(
"class fixtures not supported (may be in the future)")
if getattr(function, "_pytestfixturefunction", False):
raise ValueError(
"fixture is being applied more than once to the same function")
function._pytestfixturefunction = self
return function

1
changelog/2334.feature Normal file
View File

@ -0,0 +1 @@
Now when ``@pytest.fixture`` is applied more than once to the same function a ``ValueError`` is raised. This buggy behavior would cause surprising problems and if was working for a test suite it was mostly by accident.

View File

@ -3055,6 +3055,14 @@ class TestShowFixtures(object):
Hi from test module
''')
def test_fixture_disallow_twice(self):
"""Test that applying @pytest.fixture twice generates an error (#2334)."""
with pytest.raises(ValueError):
@pytest.fixture
@pytest.fixture
def foo():
pass
@pytest.mark.parametrize('flavor', ['fixture', 'yield_fixture'])
class TestContextManagerFixtureFuncs(object):