testing.assert_warns(warning_class, *args, **kwargs)[source]

Fail unless the given callable throws the specified warning.

A warning of class warning_class should be thrown by the callable when invoked with arguments args and keyword arguments kwargs. If a different type of warning is thrown, it will not be caught.

If called with all arguments other than the warning class omitted, may be used as a context manager:

with assert_warns(SomeWarning):


The ability to be used as a context manager is new in NumPy v1.11.0.

New in version 1.4.0.


The class defining the warning that func is expected to throw.

funccallable, optional

Callable to test


Arguments for func.


Keyword arguments for func.

The value returned by func.


>>> import warnings
>>> def deprecated_func(num):
...     warnings.warn("Please upgrade", DeprecationWarning)
...     return num*num
>>> with np.testing.assert_warns(DeprecationWarning):
...     assert deprecated_func(4) == 16
>>> # or passing a func
>>> ret = np.testing.assert_warns(DeprecationWarning, deprecated_func, 4)
>>> assert ret == 16