Add changelog and note
This commit is contained in:
parent
fba008cf29
commit
3a88adb320
|
@ -0,0 +1,3 @@
|
||||||
|
Accessing ``item.funcargs`` with fixture names other than the direct ones, i.e. the direct args, the ones with ``autouse`` and the ones with ``usefixtures`` issues a warning.
|
||||||
|
|
||||||
|
This will become an error in pytest 9.
|
|
@ -278,6 +278,20 @@ The accompanying ``py.path.local`` based paths have been deprecated: plugins whi
|
||||||
resolved in future versions as we slowly get rid of the :pypi:`py`
|
resolved in future versions as we slowly get rid of the :pypi:`py`
|
||||||
dependency (see :issue:`9283` for a longer discussion).
|
dependency (see :issue:`9283` for a longer discussion).
|
||||||
|
|
||||||
|
.. _item-funcargs-deprecation:
|
||||||
|
|
||||||
|
Accessing ``item.funcargs`` with not directly requested fixture names
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. deprecated:: 8.0
|
||||||
|
.. versionremoved:: 9.0
|
||||||
|
|
||||||
|
Accessing ``item.funcargs`` with not directly requested fixture names issues warning and
|
||||||
|
will be erroneous starting from pytest 9. Directly requested fixtures are the direct args
|
||||||
|
to the test, the ``usefixtures`` fixtures and the ``autouse`` ones.
|
||||||
|
|
||||||
|
To request fixtures other than the directly requested ones, user could use
|
||||||
|
``request.getfixturevalue`` instead.
|
||||||
|
|
||||||
.. _nose-deprecation:
|
.. _nose-deprecation:
|
||||||
|
|
||||||
|
|
|
@ -50,10 +50,10 @@ MARKED_FIXTURE = PytestRemovedIn9Warning(
|
||||||
)
|
)
|
||||||
|
|
||||||
ITEM_FUNCARGS_MEMBERS = PytestRemovedIn9Warning(
|
ITEM_FUNCARGS_MEMBERS = PytestRemovedIn9Warning(
|
||||||
"Access to names other than initialnames i.e., direct args,"
|
"Accessing `item.funcargs` with a fixture name not directly requested"
|
||||||
" the ones with `usefixture` or the ones with `autouse` through "
|
" by the item, through a direct argument, `usefixtures` marker or"
|
||||||
"`item.funcargs` is deprecated and will raise `KeyError` from "
|
" an `autouse` fixture, is deprecated and will raise KeyError starting"
|
||||||
"pytest 9. Please use `request.getfixturevalue` instead."
|
" from pytest 9. Please use request.getfixturevalue instead."
|
||||||
)
|
)
|
||||||
|
|
||||||
# You want to make some `__init__` or function "private".
|
# You want to make some `__init__` or function "private".
|
||||||
|
|
|
@ -217,7 +217,7 @@ def test_deprecated_access_to_item_funcargs(pytester: Pytester) -> None:
|
||||||
test.setup()
|
test.setup()
|
||||||
with pytest.warns(
|
with pytest.warns(
|
||||||
pytest.PytestRemovedIn9Warning,
|
pytest.PytestRemovedIn9Warning,
|
||||||
match=r"Access to names other than initialnames",
|
match=r"Accessing `item.funcargs` with a fixture",
|
||||||
) as record:
|
) as record:
|
||||||
test.funcargs["fixture1"]
|
test.funcargs["fixture1"]
|
||||||
assert len(record) == 1
|
assert len(record) == 1
|
||||||
|
|
Loading…
Reference in New Issue