quicklinks

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

Table Of Contents

Previous topic

mark test functions with attributes

Next topic

unittest.TestCase support

asserting deprecation and other warnings.

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)