Is there a way to use Python unit test assertions outside of a TestCase?
You can create a instance of unittest.TestCase()
and call the methods on that.
import unittest
tc = unittest.TestCase()
tc.assertIsNotNone(a)
On older Python versions (Python 2.7 and earlier, 3.0, 3.1) you need to you pass in the name of an existing method on the class TestCase
class (normally it's passed the name of a test method on a subclass). __init__
will do in this case:
tc = unittest.TestCase('__init__')
tc.assertIsNotNone(a)
However, you are probably looking for a good Mock library instead. mock
would be a good choice.
Another option is to use pytest
, which augments assert
statements to provide the same or more context as unittest.TestCase()
assertion methods; you'd simply write assert a is not None
.