Merge pull request #4446 from nicoddemus/update-deprecations-docs
Update deprecations.rst now that we have removed a few features
This commit is contained in:
commit
06dc6e3490
|
@ -49,19 +49,6 @@ Becomes:
|
||||||
exec("assert(1, 2)") # exec is used to avoid a top-level warning
|
exec("assert(1, 2)") # exec is used to avoid a top-level warning
|
||||||
|
|
||||||
|
|
||||||
Internal classes accessed through ``Node``
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
.. deprecated:: 3.9
|
|
||||||
|
|
||||||
Access of ``Module``, ``Function``, ``Class``, ``Instance``, ``File`` and ``Item`` through ``Node`` instances now issue
|
|
||||||
this warning::
|
|
||||||
|
|
||||||
usage of Function.Module is deprecated, please use pytest.Module instead
|
|
||||||
|
|
||||||
Users should just ``import pytest`` and access those objects using the ``pytest`` module.
|
|
||||||
|
|
||||||
This has been documented as deprecated for years, but only now we are actually emitting deprecation warnings.
|
|
||||||
|
|
||||||
``cached_setup``
|
``cached_setup``
|
||||||
~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~
|
||||||
|
@ -138,40 +125,6 @@ Becomes:
|
||||||
* ``node.warn("CI", "some message")``: this code/message form is now **deprecated** and should be converted to the warning instance form above.
|
* ``node.warn("CI", "some message")``: this code/message form is now **deprecated** and should be converted to the warning instance form above.
|
||||||
|
|
||||||
|
|
||||||
``pytest_namespace``
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
.. deprecated:: 3.7
|
|
||||||
|
|
||||||
This hook is deprecated because it greatly complicates the pytest internals regarding configuration and initialization, making some
|
|
||||||
bug fixes and refactorings impossible.
|
|
||||||
|
|
||||||
Example of usage:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
class MySymbol:
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
def pytest_namespace():
|
|
||||||
return {"my_symbol": MySymbol()}
|
|
||||||
|
|
||||||
|
|
||||||
Plugin authors relying on this hook should instead require that users now import the plugin modules directly (with an appropriate public API).
|
|
||||||
|
|
||||||
As a stopgap measure, plugin authors may still inject their names into pytest's namespace, usually during ``pytest_configure``:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
|
|
||||||
def pytest_configure():
|
|
||||||
pytest.my_symbol = MySymbol()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Calling fixtures directly
|
Calling fixtures directly
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -314,35 +267,6 @@ By passing a string, users expect that pytest will interpret that command-line u
|
||||||
on (for example ``bash`` or ``Powershell``), but this is very hard/impossible to do in a portable way.
|
on (for example ``bash`` or ``Powershell``), but this is very hard/impossible to do in a portable way.
|
||||||
|
|
||||||
|
|
||||||
``yield`` tests
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
.. deprecated:: 3.0
|
|
||||||
|
|
||||||
pytest supports ``yield``-style tests, where a test function actually ``yield`` functions and values
|
|
||||||
that are then turned into proper test methods. Example:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
def check(x, y):
|
|
||||||
assert x ** x == y
|
|
||||||
|
|
||||||
|
|
||||||
def test_squared():
|
|
||||||
yield check, 2, 4
|
|
||||||
yield check, 3, 9
|
|
||||||
|
|
||||||
This would result into two actual test functions being generated.
|
|
||||||
|
|
||||||
This form of test function doesn't support fixtures properly, and users should switch to ``pytest.mark.parametrize``:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("x, y", [(2, 4), (3, 9)])
|
|
||||||
def test_squared(x, y):
|
|
||||||
assert x ** x == y
|
|
||||||
|
|
||||||
|
|
||||||
``pytest_funcarg__`` prefix
|
``pytest_funcarg__`` prefix
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -385,6 +309,82 @@ Removed Features
|
||||||
As stated in our :ref:`backwards-compatibility` policy, deprecated features are removed only in major releases after
|
As stated in our :ref:`backwards-compatibility` policy, deprecated features are removed only in major releases after
|
||||||
an appropriate period of deprecation has passed.
|
an appropriate period of deprecation has passed.
|
||||||
|
|
||||||
|
``yield`` tests
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
*Removed in version 4.0.*
|
||||||
|
|
||||||
|
pytest supported ``yield``-style tests, where a test function actually ``yield`` functions and values
|
||||||
|
that are then turned into proper test methods. Example:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
def check(x, y):
|
||||||
|
assert x ** x == y
|
||||||
|
|
||||||
|
|
||||||
|
def test_squared():
|
||||||
|
yield check, 2, 4
|
||||||
|
yield check, 3, 9
|
||||||
|
|
||||||
|
This would result into two actual test functions being generated.
|
||||||
|
|
||||||
|
This form of test function doesn't support fixtures properly, and users should switch to ``pytest.mark.parametrize``:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("x, y", [(2, 4), (3, 9)])
|
||||||
|
def test_squared(x, y):
|
||||||
|
assert x ** x == y
|
||||||
|
|
||||||
|
Internal classes accessed through ``Node``
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
*Removed in version 4.0.*
|
||||||
|
|
||||||
|
Access of ``Module``, ``Function``, ``Class``, ``Instance``, ``File`` and ``Item`` through ``Node`` instances now issue
|
||||||
|
this warning::
|
||||||
|
|
||||||
|
usage of Function.Module is deprecated, please use pytest.Module instead
|
||||||
|
|
||||||
|
Users should just ``import pytest`` and access those objects using the ``pytest`` module.
|
||||||
|
|
||||||
|
This has been documented as deprecated for years, but only now we are actually emitting deprecation warnings.
|
||||||
|
|
||||||
|
``pytest_namespace``
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
*Removed in version 4.0.*
|
||||||
|
|
||||||
|
This hook is deprecated because it greatly complicates the pytest internals regarding configuration and initialization, making some
|
||||||
|
bug fixes and refactorings impossible.
|
||||||
|
|
||||||
|
Example of usage:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class MySymbol:
|
||||||
|
...
|
||||||
|
|
||||||
|
|
||||||
|
def pytest_namespace():
|
||||||
|
return {"my_symbol": MySymbol()}
|
||||||
|
|
||||||
|
|
||||||
|
Plugin authors relying on this hook should instead require that users now import the plugin modules directly (with an appropriate public API).
|
||||||
|
|
||||||
|
As a stopgap measure, plugin authors may still inject their names into pytest's namespace, usually during ``pytest_configure``:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
def pytest_configure():
|
||||||
|
pytest.my_symbol = MySymbol()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reinterpretation mode (``--assert=reinterp``)
|
Reinterpretation mode (``--assert=reinterp``)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
Loading…
Reference in New Issue