From 303b213c1a71d9f47b39cd3ad4db167f0b247364 Mon Sep 17 00:00:00 2001 From: Chris Mahoney Date: Mon, 18 Sep 2023 11:23:34 +1000 Subject: [PATCH] Add `FutureWarning` to `deprecated_call` --- changelog/11447.improvement.rst | 1 + src/_pytest/recwarn.py | 4 ++-- testing/test_recwarn.py | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 changelog/11447.improvement.rst diff --git a/changelog/11447.improvement.rst b/changelog/11447.improvement.rst new file mode 100644 index 000000000..ecf998444 --- /dev/null +++ b/changelog/11447.improvement.rst @@ -0,0 +1 @@ +Add ``FutureWarning`` to ``deprecated_call``. diff --git a/src/_pytest/recwarn.py b/src/_pytest/recwarn.py index 5484d6f3b..fc849989e 100644 --- a/src/_pytest/recwarn.py +++ b/src/_pytest/recwarn.py @@ -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,7 @@ 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 diff --git a/testing/test_recwarn.py b/testing/test_recwarn.py index 8b70c8aff..2d17809fb 100644 --- a/testing/test_recwarn.py +++ b/testing/test_recwarn.py @@ -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, ]