Change deprecated_call to handle FutureWarning (#11448)

Fixes #11447
This commit is contained in:
Chris Mahoney 2023-09-18 22:34:05 +10:00 committed by GitHub
parent 8b7f94f145
commit 8062743f6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 4 deletions

View File

@ -0,0 +1 @@
:func:`pytest.deprecated_call` now also considers warnings of type :class:`FutureWarning`.

View File

@ -56,7 +56,7 @@ def deprecated_call( # noqa: F811
def deprecated_call( # noqa: F811
func: Optional[Callable[..., Any]] = None, *args: Any, **kwargs: Any
) -> Union["WarningsRecorder", Any]:
"""Assert that code produces a ``DeprecationWarning`` or ``PendingDeprecationWarning``.
"""Assert that code produces a ``DeprecationWarning`` or ``PendingDeprecationWarning`` or ``FutureWarning``.
This function can be used as a context manager::
@ -82,7 +82,9 @@ def deprecated_call( # noqa: F811
__tracebackhide__ = True
if func is not None:
args = (func,) + args
return warns((DeprecationWarning, PendingDeprecationWarning), *args, **kwargs)
return warns(
(DeprecationWarning, PendingDeprecationWarning, FutureWarning), *args, **kwargs
)
@overload

View File

@ -192,7 +192,7 @@ class TestDeprecatedCall:
f()
@pytest.mark.parametrize(
"warning_type", [PendingDeprecationWarning, DeprecationWarning]
"warning_type", [PendingDeprecationWarning, DeprecationWarning, FutureWarning]
)
@pytest.mark.parametrize("mode", ["context_manager", "call"])
@pytest.mark.parametrize("call_f_first", [True, False])
@ -221,7 +221,6 @@ class TestDeprecatedCall:
UserWarning,
SyntaxWarning,
RuntimeWarning,
FutureWarning,
ImportWarning,
UnicodeWarning,
]