Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > 85556a06d0b40546e6bb4676359ced2e > files > 138

python-pytest-2.2.4-1mdv2010.1.noarch.rpm


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)