allow to use pytest.fixture decorator on old-style pytest_funcarg__NAME definitions.

This commit is contained in:
holger krekel 2013-12-04 07:16:34 +01:00
parent bd320951e6
commit 817b175870
3 changed files with 19 additions and 2 deletions

View File

@ -93,6 +93,9 @@ Unreleased
- fix verbose reporting for @mock'd test functions
- allow @pytest.fixture marked pytest_funcarg__foo functions
so that pylint errors can be avoided.
Changes between 2.4.1 and 2.4.2
-----------------------------------

View File

@ -1660,8 +1660,9 @@ class FixtureManager:
# magic globals with __getattr__ might have got us a wrong
# fixture attribute
continue
else:
assert not name.startswith(self._argprefix)
elif name.startswith(self._argprefix):
# let's allso fixture-marked pytest_funcarg__ prefixed functions
name = name[len(self._argprefix):]
fixturedef = FixtureDef(self, nodeid, name, obj,
marker.scope, marker.params,
yieldctx=marker.yieldctx,

View File

@ -195,3 +195,16 @@ class TestReRunTests:
def test_pytestconfig_is_session_scoped():
from _pytest.python import pytestconfig
assert pytestconfig._pytestfixturefunction.scope == "session"
def test_funcarg_prefix_and_marker(testdir):
testdir.makepyfile("""
import pytest
@pytest.fixture
def pytest_funcarg__foo():
return 1
def test_hello(foo):
assert foo == 1
""")
reprec = testdir.inline_run()
reprec.assertoutcome(passed=1)