I've searched for documentation, but couldn't find any. There were a couple that didn't explain much.
Can someone explain to me Nose's
assert_raises(what should I put here?)
function and how to use it?
nose can be integrated with DocTest by using with-doctest option in athe bove command line. The result will be true if the test run is successful, or false if it fails or raises an uncaught exception. nose supports fixtures (setup and teardown methods) at the package, module, class, and test level.
The nose. tools module provides a number of testing aids that you may find useful, including decorators for restricting test execution time and testing for exceptions, and all of the same assertX methods found in unittest.
While the accepted answer is correct, I think there is a better use to assert_raises
method.
If you simply want to assert that an exception occurs, it's probably simpler and cleaner to use @raises
syntax.
@raises(HTTPError) def test_exception_is_raised: call_your_method(p1, p2)
However, assume you want to do bit more with the raised exception, for example: we need to assert that raised HTTPError is of type 401: Unauthorized, instead of 500: Server Error.
In such a situation above syntax is not that helpful, we should use the assert_raises
but in a different way. If we do not pass it a callable
as the second parameter assert_raises
will return back a context which we can use to further test the exception details.
def test_exception_is_raised: with assert_raises(HTTPError) as cm: call_your_method(p1, p2) ex = cm.exception # raised exception is available through exception property of context ok_(ex.code == 401, 'HTTPError should be Unauthorized!')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With