Skip to content

Commit 454426c

Browse files
Merge pull request #2446 from nicoddemus/issue-2441
pytest.deprecated_call now captures PendingDeprecationWarning in context manager form
2 parents ee0844d + f96a1d8 commit 454426c

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

_pytest/recwarn.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def deprecated_call(func=None, *args, **kwargs):
4545
triggered twice for the same module. See #1190.
4646
"""
4747
if not func:
48-
return WarningsChecker(expected_warning=DeprecationWarning)
48+
return WarningsChecker(expected_warning=(DeprecationWarning, PendingDeprecationWarning))
4949

5050
categories = []
5151

changelog/2441.bugfix

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
``pytest.deprecated_call`` now captures ``PendingDeprecationWarning`` in context manager form.

testing/test_recwarn.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,17 @@ def test_deprecated_call_as_context_manager_no_warning(self):
109109
with pytest.deprecated_call():
110110
self.dep(1)
111111

112-
def test_deprecated_call_as_context_manager(self):
113-
with pytest.deprecated_call():
114-
self.dep(0)
115-
116-
def test_deprecated_call_pending(self):
112+
@pytest.mark.parametrize('warning_type', [PendingDeprecationWarning, DeprecationWarning])
113+
@pytest.mark.parametrize('mode', ['context_manager', 'call'])
114+
def test_deprecated_call_modes(self, warning_type, mode):
117115
def f():
118-
py.std.warnings.warn(PendingDeprecationWarning("hi"))
119-
pytest.deprecated_call(f)
116+
warnings.warn(warning_type("hi"))
117+
118+
if mode == 'call':
119+
pytest.deprecated_call(f)
120+
else:
121+
with pytest.deprecated_call():
122+
f()
120123

121124
def test_deprecated_call_specificity(self):
122125
other_warnings = [Warning, UserWarning, SyntaxWarning, RuntimeWarning,

0 commit comments

Comments
 (0)