TestSlide: Fluent Python Testing
It is designed to work well with other test frameworks, so you can use it on top of existing
unittest.TestCase without rewriting everything.
pip install TestSlide
Scaffold the code you want to test
class Backup(object): def delete(self, path): pass
Write a test case
backup_test.py describing the expected behavior:
import testslide, backup, storage class TestBackupDelete(testslide.TestCase): def setUp(self): super().setUp() self.storage_mock = testslide.StrictMock(storage.Client) # Makes storage.Client(timeout=60) return self.storage_mock self.mock_constructor(storage, 'Client')\ .for_call(timeout=60)\ .to_return_value(self.storage_mock) def test_delete_from_storage(self): # Set behavior and assertion for the call at the mock self.mock_callable(self.storage_mock, 'delete')\ .for_call('/file/to/delete')\ .to_return_value(True)\ .and_assert_called_once() backup.Backup().delete('/file/to/delete')
mock_callable() are seamlessly integrated with Python's TestCase.
Run the test and see the failure:
TestSlide's mocks failure messages guide you towards the solution, that you can now implement:
import storage class Backup(object): def __init__(self): self.storage = storage.Client(timeout=60) def delete(self, path): self.storage.delete(path)
And watch the test go green:
It is all about letting the failure messages guide you towards the solution. There's a plethora of validation inside TestSlide's mocks, so you can trust they will help you iterate quickly when writing code and also cover you when breaking changes are introduced.
There's a lot more that TestSlide can offer, please check the full documentation at https://testslide.readthedocs.io/ to learn more.
- Python 2 / 3
Join the TestSlide community
TestSlide is open source software, contributions are very welcome!
See the CONTRIBUTING file for how to help out.
TestSlide is MIT licensed, as found in the LICENSE file.