Assert Exception Message in pytest

pytest(https://pytest.orig) makes it easy to assert that an exception is raised and that it's the one you expect.
Prerequisites
Once we setup pytest, we get a nice assertion utility to verify that exceptions are raised.
For instance, in module my_module.py with code:
def my_fn():
raise Exception('Kaboom')
We can write a test that expects the exception to be raised.
import pytest
import my_module
def test_exception_raise():
with pytest.raises(Exception) as exc_info:
my_module.my_fn()
assert str(exc_info.value) == 'Kaboom'A with block is used. Note the as binding to exc_info. This is of type _pytest._code.code.ExceptionInfo. It has a member called value, which is the actual Exception. If we were raising a different type of Exception, we would define that in the raises parameter (eg, pytest.raises(HttpException)). We cast the exception to a string to extract its message. We make the assertion on that message.