Helpful extras built to make python unittesting easier.
pip install unittest-additions
- Additional Asserts
- Temporary Files
- Runtime Timer
Below are some example uses for some of the features.
def test_using_temp_file(self): with TestFile(TEST_FILE, TEST_DATA) as tf: # File TEST_FILE now exists with TEST_DATA inside. tf.append(MORE_TEST_DATA) # File TEST_FILE now has TEST_DATA with MORE_TEST_DATA appended. # File TEST_FILE no longer exists.
A RunTimer is provied to help compare run times of code.
with RunTimer() as t: t0 = t.split() t1 = t.split() t2 = t.overall()
mock_open Line Iteration
When mocking a file using
mock_open, "code-under-test" using line iteration (as in the example below) will not work as expected. (
do_something will not be called.)
def my_function(fn): with open(fn, 'r') as f: for l in f: do_something(l)
To enable line iteration you can use
@patch('builtins.open', new_callable=mock_open, read_data='line 0\nline 1\n') def test_function(self, open_mock): add_line_iter_to_mock_open(open_mock) # Line iteration over the mock_open read_data will now work.
To use the additional asserts, add the mixin to your
class MixedTestCase(TestCase, AdditionalAssertsMixin): def test_a_test: self.assertIsEmpty() self.assertIsNotEmpty(('hello',))
The new asserts are:
|Method||Checks that ...|