Another thing we want to test for is that analyze_text() raises the correct exception when it is passed a non-existent file name, which we can test like this:
# text_analyzer.py
class TextAnalysisTests(unittest.TestCase):
. . .
def test_no_such_file(self):
"Check the proper exception is thrown for a missing file."
with self.assertRaises(IOError):
analyze_text('foobar')
Here we use the TestCase.assertRaises() assertion. This assertion checks that the specified exception type — in this case IOError — is thrown from the body of the with-block.
Since open() raises IOError for non-existent files, our test already passes with no further implementation:
% python text_analyzer.py
....
----------------------------------------------------------------------
Ran 4 tests in 0.004s
OK