parent
5506dc700c
commit
ad4125dc0d
|
@ -188,7 +188,9 @@
|
||||||
* ``yield``-based tests are considered deprecated and will be removed in pytest-4.0.
|
* ``yield``-based tests are considered deprecated and will be removed in pytest-4.0.
|
||||||
Thanks `@nicoddemus`_ for the PR.
|
Thanks `@nicoddemus`_ for the PR.
|
||||||
|
|
||||||
*
|
* Using ``pytest_funcarg__`` prefix to declare fixtures is considered deprecated and will be
|
||||||
|
removed in pytest-4.0 (`#1684`_).
|
||||||
|
Thanks `@nicoddemus`_ for the PR.
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
|
@ -262,6 +264,7 @@
|
||||||
.. _#1632: https://github.com/pytest-dev/pytest/issues/1632
|
.. _#1632: https://github.com/pytest-dev/pytest/issues/1632
|
||||||
.. _#1633: https://github.com/pytest-dev/pytest/pull/1633
|
.. _#1633: https://github.com/pytest-dev/pytest/pull/1633
|
||||||
.. _#1664: https://github.com/pytest-dev/pytest/pull/1664
|
.. _#1664: https://github.com/pytest-dev/pytest/pull/1664
|
||||||
|
.. _#1684: https://github.com/pytest-dev/pytest/pull/1684
|
||||||
|
|
||||||
.. _@DRMacIver: https://github.com/DRMacIver
|
.. _@DRMacIver: https://github.com/DRMacIver
|
||||||
.. _@RedBeardCode: https://github.com/RedBeardCode
|
.. _@RedBeardCode: https://github.com/RedBeardCode
|
||||||
|
|
|
@ -865,6 +865,10 @@ def yield_fixture(scope="function", params=None, autouse=False, ids=None, name=N
|
||||||
return FixtureFunctionMarker(scope, params, autouse, ids=ids, name=name)
|
return FixtureFunctionMarker(scope, params, autouse, ids=ids, name=name)
|
||||||
|
|
||||||
defaultfuncargprefixmarker = fixture()
|
defaultfuncargprefixmarker = fixture()
|
||||||
|
funcarg_prefix_warning = 'declaring fixtures using "pytest_funcarg__" prefix is deprecated ' \
|
||||||
|
'and scheduled to be removed in pytest 4.0.\n' \
|
||||||
|
'remove the prefix and use the @pytest.fixture decorator instead'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@fixture(scope="session")
|
@fixture(scope="session")
|
||||||
|
@ -1043,6 +1047,7 @@ class FixtureManager:
|
||||||
continue
|
continue
|
||||||
marker = defaultfuncargprefixmarker
|
marker = defaultfuncargprefixmarker
|
||||||
name = name[len(self._argprefix):]
|
name = name[len(self._argprefix):]
|
||||||
|
self.config.warn('C1', funcarg_prefix_warning)
|
||||||
elif not isinstance(marker, FixtureFunctionMarker):
|
elif not isinstance(marker, FixtureFunctionMarker):
|
||||||
# magic globals with __getattr__ might have got us a wrong
|
# magic globals with __getattr__ might have got us a wrong
|
||||||
# fixture attribute
|
# fixture attribute
|
||||||
|
|
|
@ -777,3 +777,19 @@ def test_yield_tests_deprecation(testdir):
|
||||||
'*yield tests are deprecated, and scheduled to be removed in pytest 4.0*',
|
'*yield tests are deprecated, and scheduled to be removed in pytest 4.0*',
|
||||||
'*2 passed*',
|
'*2 passed*',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
def test_funcarg_prefix_deprecation(testdir):
|
||||||
|
testdir.makepyfile("""
|
||||||
|
def pytest_funcarg__value():
|
||||||
|
return 10
|
||||||
|
|
||||||
|
def test_funcarg_prefix(value):
|
||||||
|
assert value == 10
|
||||||
|
""")
|
||||||
|
result = testdir.runpytest('-ra')
|
||||||
|
result.stdout.fnmatch_lines([
|
||||||
|
'*declaring fixtures using "pytest_funcarg__" prefix is deprecated and scheduled to be removed in pytest 4.0*',
|
||||||
|
'*remove the prefix and use the @pytest.fixture decorator instead*',
|
||||||
|
'*1 passed*',
|
||||||
|
])
|
||||||
|
|
Loading…
Reference in New Issue