AtomsTestFixture.assertWarns(expected_warning, callable_obj=None, *args, **kwargs)[source]

Fail unless a warning of class warnClass is triggered by callable_obj when invoked with arguments args and keyword arguments kwargs. If a different type of warning is triggered, it will not be handled: depending on the other warning filtering rules in effect, it might be silenced, printed out, or raised as an exception.

If called with callable_obj omitted or None, will return a context object used like this:

with self.assertWarns(SomeWarning):

An optional keyword argument ‘msg’ can be provided when assertWarns is used as a context object.

The context manager keeps a reference to the first matching warning as the ‘warning’ attribute; similarly, the ‘filename’ and ‘lineno’ attributes give you information about the line of Python code from which the warning was triggered. This allows you to inspect the warning after the assertion:

with self.assertWarns(SomeWarning) as cm:
the_warning = cm.warning
self.assertEqual(the_warning.some_attribute, 147)