Merge pull request #2849 from ApaDoctor/disable-repeated-fixture
provide error fixture applied to the same func
This commit is contained in:
commit
6e62fc98ff
|
@ -851,6 +851,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
|
||||
|
||||
|
|
|
@ -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.
|
|
@ -2992,6 +2992,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):
|
||||
|
|
Loading…
Reference in New Issue