60 lines
1.4 KiB
Plaintext
60 lines
1.4 KiB
Plaintext
|
|
pytest_recwarn plugin
|
|
=====================
|
|
|
|
helpers for asserting deprecation and other warnings.
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
Example usage
|
|
---------------------
|
|
|
|
You can use the ``recwarn`` funcarg to track
|
|
warnings within a test function:
|
|
|
|
.. sourcecode:: python
|
|
|
|
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
|
|
|
|
You can also call a global helper for checking
|
|
taht a certain function call yields a Deprecation
|
|
warning:
|
|
|
|
.. sourcecode:: python
|
|
|
|
import py
|
|
|
|
def test_global():
|
|
py.test.deprecated_call(myfunction, 17)
|
|
|
|
.. _`recwarn funcarg`:
|
|
|
|
|
|
the 'recwarn' test function argument
|
|
------------------------------------
|
|
|
|
Return a WarningsRecorder instance that provides these methods:
|
|
|
|
* ``pop(category=None)``: return last warning matching the category.
|
|
* ``clear()``: clear list of warnings
|
|
|
|
Start improving this plugin in 30 seconds
|
|
=========================================
|
|
|
|
|
|
1. Download `pytest_recwarn.py`_ plugin source code
|
|
2. put it somewhere as ``pytest_recwarn.py`` into your import path
|
|
3. a subsequent ``py.test`` run will use your local version
|
|
|
|
Checkout customize_, other plugins_ or `get in contact`_.
|
|
|
|
.. include:: links.txt
|