diff --git a/_pytest/recwarn.py b/_pytest/recwarn.py index abefdfac1..601acffda 100644 --- a/_pytest/recwarn.py +++ b/_pytest/recwarn.py @@ -36,7 +36,8 @@ def deprecated_call(func, *args, **kwargs): warnings.simplefilter('always') # ensure all warnings are triggered ret = func(*args, **kwargs) - if not any(r.category is DeprecationWarning for r in wrec): + depwarnings = (DeprecationWarning, PendingDeprecationWarning) + if not any(r.category in depwarnings for r in wrec): __tracebackhide__ = True raise AssertionError("%r did not produce DeprecationWarning" % (func,)) diff --git a/testing/test_recwarn.py b/testing/test_recwarn.py index 644b09ef7..08436c9fc 100644 --- a/testing/test_recwarn.py +++ b/testing/test_recwarn.py @@ -81,7 +81,7 @@ def dep_explicit(i): class TestDeprecatedCall(object): def test_deprecated_call_raises(self): excinfo = pytest.raises(AssertionError, - "pytest.deprecated_call(dep, 3)") + "pytest.deprecated_call(dep, 3)") assert str(excinfo).find("did not produce") != -1 def test_deprecated_call(self): @@ -105,12 +105,16 @@ class TestDeprecatedCall(object): def test_deprecated_explicit_call_raises(self): pytest.raises(AssertionError, - "pytest.deprecated_call(dep_explicit, 3)") + "pytest.deprecated_call(dep_explicit, 3)") def test_deprecated_explicit_call(self): pytest.deprecated_call(dep_explicit, 0) pytest.deprecated_call(dep_explicit, 0) + def test_deprecated_call_pending(self): + f = lambda: py.std.warnings.warn(PendingDeprecationWarning("hi")) + pytest.deprecated_call(f) + class TestWarns(object): def test_strings(self): @@ -181,4 +185,3 @@ class TestWarns(object): ''') result = testdir.runpytest() result.stdout.fnmatch_lines(['*2 passed in*']) -