parent
							
								
									ccb90b5c46
								
							
						
					
					
						commit
						c2841542af
					
				|  | @ -0,0 +1,3 @@ | ||||||
|  | New `Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`_ page shows all currently | ||||||
|  | deprecated features, the rationale to do so, and alternatives to update your code. It also list features removed | ||||||
|  | from pytest in past major releases to help those with ancient pytest versions to upgrade. | ||||||
|  | @ -3,13 +3,16 @@ | ||||||
| Deprecations and Removals | Deprecations and Removals | ||||||
| ========================= | ========================= | ||||||
| 
 | 
 | ||||||
| This page lists all pytest features that are currently deprecated or have been removed in previous major releases. | This page lists all pytest features that are currently deprecated or have been removed in past major releases. | ||||||
| The objective is to give users a clear rationale why a certain feature has been removed, and what alternatives can be | The objective is to give users a clear rationale why a certain feature has been removed, and what alternatives | ||||||
| used instead. | should be used instead. | ||||||
| 
 | 
 | ||||||
| Deprecated Features | Deprecated Features | ||||||
| ------------------- | ------------------- | ||||||
| 
 | 
 | ||||||
|  | Below is a complete list of all pytest features which are considered deprecated. Using those features will issue | ||||||
|  | :class:`_pytest.warning_types.PytestWarning` or subclasses, which can be filtered using | ||||||
|  | :ref:`standard warning filters <warnings>`. | ||||||
| 
 | 
 | ||||||
| ``Config.warn`` and ``Node.warn`` | ``Config.warn`` and ``Node.warn`` | ||||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  | @ -101,6 +104,14 @@ In those cases just request the function directly in the dependent fixture: | ||||||
|         cell.make_full() |         cell.make_full() | ||||||
|         return cell |         return cell | ||||||
| 
 | 
 | ||||||
|  | ``Node.get_marker`` | ||||||
|  | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  | 
 | ||||||
|  | .. deprecated:: 3.6 | ||||||
|  | 
 | ||||||
|  | As part of a large :ref:`marker-revamp`, :meth:`_pytest.nodes.Node.get_marker` is deprecated. See | ||||||
|  | :ref:`the documentation <update marker code>` on tips on how to update your code. | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| record_xml_property | record_xml_property | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  | @ -133,6 +144,134 @@ Defining ``pytest_plugins`` is now deprecated in non-top-level conftest.py | ||||||
| files because they will activate referenced plugins *globally*, which is surprising because for all other pytest | files because they will activate referenced plugins *globally*, which is surprising because for all other pytest | ||||||
| features ``conftest.py`` files are only *active* for tests at or below it. | features ``conftest.py`` files are only *active* for tests at or below it. | ||||||
| 
 | 
 | ||||||
|  | Metafunc.addcall | ||||||
|  | ~~~~~~~~~~~~~~~~ | ||||||
|  | 
 | ||||||
|  | .. deprecated:: 3.3 | ||||||
|  | 
 | ||||||
|  | :meth:`_pytest.python.Metafunc.addcall` was a precursor to the current parametrized mechanism. Users should use | ||||||
|  | :meth:`_pytest.python.Metafunc.parametrize` instead. | ||||||
|  | 
 | ||||||
|  | marks in ``pytest.mark.parametrize`` | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  | 
 | ||||||
|  | .. deprecated:: 3.2 | ||||||
|  | 
 | ||||||
|  | Applying marks to values of a ``pytest.mark.parametrize`` call is now deprecated. For example: | ||||||
|  | 
 | ||||||
|  | .. code-block:: python | ||||||
|  | 
 | ||||||
|  |     @pytest.mark.parametrize( | ||||||
|  |         "a, b", [(3, 9), pytest.mark.xfail(reason="flaky")(6, 36), (10, 100)] | ||||||
|  |     ) | ||||||
|  |     def test_foo(a, b): | ||||||
|  |         ... | ||||||
|  | 
 | ||||||
|  | This code applies the ``pytest.mark.xfail(reason="flaky")`` mark to the ``(6, 36)`` value of the above parametrization | ||||||
|  | call. | ||||||
|  | 
 | ||||||
|  | This was considered hard to read and understand, and also its implementation presented problems to the code preventing | ||||||
|  | further internal improvements in the marks architecture. | ||||||
|  | 
 | ||||||
|  | To update the code, use ``pytest.param``: | ||||||
|  | 
 | ||||||
|  | .. code-block:: python | ||||||
|  | 
 | ||||||
|  |     @pytest.mark.parametrize( | ||||||
|  |         "a, b", | ||||||
|  |         [(3, 9), pytest.param((6, 36), marks=pytest.mark.xfail(reason="flaky")), (10, 100)], | ||||||
|  |     ) | ||||||
|  |     def test_foo(a, b): | ||||||
|  |         ... | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Passing command-line string to ``pytest.main()`` | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  | 
 | ||||||
|  | .. deprecated:: 3.0 | ||||||
|  | 
 | ||||||
|  | Passing a command-line string to ``pytest.main()`` is deprecated: | ||||||
|  | 
 | ||||||
|  | .. code-block:: python | ||||||
|  | 
 | ||||||
|  |     pytest.main("-v -s") | ||||||
|  | 
 | ||||||
|  | Pass a list instead: | ||||||
|  | 
 | ||||||
|  | .. code-block:: python | ||||||
|  | 
 | ||||||
|  |     pytest.main(["-v", "-s"]) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | By passing a string, users expect that pytest will interpret that command-line using the shell rules they are working | ||||||
|  | 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(): | ||||||
|  |         assert x ** x == y | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | ``pytest_funcarg__`` prefix | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  | 
 | ||||||
|  | .. deprecated:: 3.0 | ||||||
|  | 
 | ||||||
|  | In very early pytest versions fixtures could be defined using the ``pytest_funcarg__`` prefix: | ||||||
|  | 
 | ||||||
|  | .. code-block:: python | ||||||
|  | 
 | ||||||
|  |     def pytest_funcarg__data(): | ||||||
|  |         return SomeData() | ||||||
|  | 
 | ||||||
|  | Switch over to the ``@pytest.fixture`` decorator: | ||||||
|  | 
 | ||||||
|  | .. code-block:: python | ||||||
|  | 
 | ||||||
|  |     @pytest.fixture | ||||||
|  |     def data(): | ||||||
|  |         return SomeData() | ||||||
|  | 
 | ||||||
|  | [pytest] section in setup.cfg files | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  | 
 | ||||||
|  | .. deprecated:: 3.0 | ||||||
|  | 
 | ||||||
|  | ``[pytest]`` sections in ``setup.cfg`` files should now be named ``[tool:pytest]`` | ||||||
|  | to avoid conflicts with other distutils commands. | ||||||
|  | 
 | ||||||
|  | Result log (``--result-log``) | ||||||
|  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||||
|  | 
 | ||||||
|  | .. deprecated:: 3.0 | ||||||
|  | 
 | ||||||
|  | The ``--resultlog`` command line option has been deprecated: it is little used | ||||||
|  | and there are more modern and better alternatives, for example `pytest-tap <https://tappy.readthedocs.io/en/latest/>`_. | ||||||
| 
 | 
 | ||||||
| Removed Features | Removed Features | ||||||
| ---------------- | ---------------- | ||||||
|  |  | ||||||
|  | @ -52,6 +52,8 @@ should add ``--strict`` to ``addopts``: | ||||||
|         serial |         serial | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | .. _marker-revamp: | ||||||
|  | 
 | ||||||
| Marker revamp and iteration | Marker revamp and iteration | ||||||
| --------------------------- | --------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue