Table of Contents
Python 3x+, Pytest 7x+ used unless otherwise stated.
Assert exception is raised
with pytest.raises(ValueError): as a context manager:
# inside my_test.py def test_raises_index_error(): # test will success if an IndexError is raised with pytest.raises(IndexError): arr = [1,2,3] arr
Assert exception with specific text
<regular_expression> supports whatever you can use in re.search.
# inside my_test.py def test_raises_specific_exception(): # test will success if a ValueError is raised, # but only if the text contains a number starting with "5" # (e.g. 500 or 503 HTTP errors) with pytest.raises(RuntimeError, match=r"5\d+"): some_code_that_raises_the_exception()