quicklinks

home TOC/contents
install changelog
examples customize
issues[bb] contact

Table Of Contents

Previous topic

Skip and xfail: dealing with tests that can not succeed

Next topic

Support for unittest.TestCase / Integration of fixtures

Asserting deprecation and other warnings

The recwarn function argument

You can use the recwarn funcarg to assert that code triggers warnings through the Python warnings system. Here is a simple self-contained test:

# content of test_recwarn.py
def test_hello(recwarn):
    from warnings import warn
    warn("hello", DeprecationWarning)
    w = recwarn.pop(DeprecationWarning)
    assert issubclass(w.category, DeprecationWarning)
    assert 'hello' in str(w.message)
    assert w.filename
    assert w.lineno

The recwarn function argument provides these methods:

  • pop(category=None): return last warning matching the category.
  • clear(): clear list of warnings

Ensuring a function triggers a deprecation warning

You can also call a global helper for checking that a certain function call triggers a Deprecation warning:

import pytest

def test_global():
    pytest.deprecated_call(myfunction, 17)