Merge pull request #8754 from nicoddemus/fix-deprecation-docs
This commit is contained in:
		
						commit
						c675d8054d
					
				|  | @ -173,8 +173,6 @@ DeprecationWarning and PendingDeprecationWarning | |||
| ------------------------------------------------ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| By default pytest will display ``DeprecationWarning`` and ``PendingDeprecationWarning`` warnings from | ||||
| user code and third-party libraries, as recommended by `PEP-0565 <https://www.python.org/dev/peps/pep-0565>`_. | ||||
| This helps users keep their code modern and avoid breakages when deprecated warnings are effectively removed. | ||||
|  | @ -230,27 +228,8 @@ that a certain function call triggers a ``DeprecationWarning`` or | |||
| This test will fail if ``myfunction`` does not issue a deprecation warning | ||||
| when called with a ``17`` argument. | ||||
| 
 | ||||
| By default, ``DeprecationWarning`` and ``PendingDeprecationWarning`` will not be | ||||
| caught when using :func:`pytest.warns` or :ref:`recwarn <recwarn>` because | ||||
| the default Python warnings filters hide | ||||
| them. If you wish to record them in your own code, use | ||||
| ``warnings.simplefilter('always')``: | ||||
| 
 | ||||
| .. code-block:: python | ||||
| 
 | ||||
|     import warnings | ||||
|     import pytest | ||||
| 
 | ||||
| 
 | ||||
|     def test_deprecation(recwarn): | ||||
|         warnings.simplefilter("always") | ||||
|         myfunction(17) | ||||
|         assert len(recwarn) == 1 | ||||
|         assert recwarn.pop(DeprecationWarning) | ||||
| 
 | ||||
| 
 | ||||
| The :ref:`recwarn <recwarn>` fixture automatically ensures to reset the warnings | ||||
| filter at the end of the test, so no global state is leaked. | ||||
| 
 | ||||
| .. _`asserting warnings`: | ||||
| 
 | ||||
|  | @ -317,9 +296,9 @@ additional information: | |||
| Alternatively, you can examine raised warnings in detail using the | ||||
| :ref:`recwarn <recwarn>` fixture (see below). | ||||
| 
 | ||||
| .. note:: | ||||
|     ``DeprecationWarning`` and ``PendingDeprecationWarning`` are treated | ||||
|     differently; see :ref:`ensuring_function_triggers`. | ||||
| 
 | ||||
| The :ref:`recwarn <recwarn>` fixture automatically ensures to reset the warnings | ||||
| filter at the end of the test, so no global state is leaked. | ||||
| 
 | ||||
| .. _`recording warnings`: | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,7 @@ | |||
| """Support for providing temporary directories to test functions.""" | ||||
| import os | ||||
| import re | ||||
| import sys | ||||
| import tempfile | ||||
| from pathlib import Path | ||||
| from typing import Optional | ||||
|  | @ -130,9 +131,9 @@ class TempPathFactory: | |||
|             # Also, to keep things private, fixup any world-readable temp | ||||
|             # rootdir's permissions. Historically 0o755 was used, so we can't | ||||
|             # just error out on this, at least for a while. | ||||
|             if hasattr(os, "getuid"): | ||||
|                 rootdir_stat = rootdir.stat() | ||||
|             if sys.platform != "win32": | ||||
|                 uid = os.getuid() | ||||
|                 rootdir_stat = rootdir.stat() | ||||
|                 # getuid shouldn't fail, but cpython defines such a case. | ||||
|                 # Let's hope for the best. | ||||
|                 if uid != -1: | ||||
|  |  | |||
|  | @ -27,6 +27,17 @@ def test_recwarn_functional(pytester: Pytester) -> None: | |||
|     reprec.assertoutcome(passed=1) | ||||
| 
 | ||||
| 
 | ||||
| @pytest.mark.filterwarnings("") | ||||
| def test_recwarn_captures_deprecation_warning(recwarn: WarningsRecorder) -> None: | ||||
|     """ | ||||
|     Check that recwarn can capture DeprecationWarning by default | ||||
|     without custom filterwarnings (see #8666). | ||||
|     """ | ||||
|     warnings.warn(DeprecationWarning("some deprecation")) | ||||
|     assert len(recwarn) == 1 | ||||
|     assert recwarn.pop(DeprecationWarning) | ||||
| 
 | ||||
| 
 | ||||
| class TestWarningsRecorderChecker: | ||||
|     def test_recording(self) -> None: | ||||
|         rec = WarningsRecorder(_ispytest=True) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue