How do you test that a Python function throws an exception?
You can use the pytest.raises
function to test that a Python function throws an exception. Here is an example code snippet:
import pytest
def test_example():
def some_function():
raise ValueError("This is an example exception.")
with pytest.raises(ValueError):
some_function()
In the above example, the some_function
is expected to raise a ValueError
exception, and the pytest.raises
function is used to check that this exception is indeed raised when the some_function
is called. If the some_function
does not raise a ValueError
, the test will fail.
Additionally you could use assert statement with context manager to check exception like this:
def test_example():
def some_function():
raise ValueError("This is an example exception.")
try:
some_function()
except ValueError as e:
assert str(e)=="This is an example exception."
You could also test for the exception message using this assert statement.