Additional features to extend python unittest and mock.
Project description
unittest_additions
Helpful extras built to make python unittesting easier.
pip install unittest-additions
Features
- Additional Asserts
- Temporary Files
- Runtime Timer
mock_open
Line Iteration
Example Uses
Below are some example uses for some of the features.
Temporary Files
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.
RunTimer
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 add_line_iter_to_mock_open
.
@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.
Additional Asserts
To use the additional asserts, add the mixin to your TestCase
class.
class MixedTestCase(TestCase, AdditionalAssertsMixin):
def test_a_test:
self.assertIsEmpty([])
self.assertIsNotEmpty(('hello',))
The new asserts are:
Method | Checks that ... |
---|---|
assertIsEmpty(c) |
len(c) == 0 |
assertIsNotEmpty(c) |
len(c) > 0 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for unittest_additions-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dbe6b8f87b22b96529707ba445b183a3a083a4107bb275663068b52ded4a0ec3 |
|
MD5 | 1dd5710c24d1c5893ba057f95c66976a |
|
BLAKE2b-256 | 0fe314595ccd4f3cd02eebc23910ad047e673b632f44b51447f0be6c047e38ff |