Mocktail
The non-alcoholic, Mockito-inspired utility for unittest.mock!
This package provides dead-simple utilities for setting return values for mocks with a Mockito-inspired syntax:
from unittest.mock import MagicMock
from mocktail import when
my_mock = MagicMock()
when(my_mock).some_method('foo').then_return('bar')
my_mock.some_method('foo') # 'bar'
Unlike other solutions (like mockito-python),
it deliberately only works with mocks created using unittest.mock. To set the return
values of arbitrary objects, combine with unittest.mock.patch.
Installation
pip install mocktail
Buyer beware!
This package -- though very minimal -- is in early alpha stage. Use with your own risk!
Contributing
Pull requests and bug reports are gladly accepted in this Github repository.
License
MIT
TODO
- (More) matchers
- Matcher for "rest of args / kwargs"
verifysyntax- Docs
- Some way to make "missed" matches more explicit, ie. raising an error
e.g.
when(...).foo(...).then_return(...).raise_missing()orwhen(..., raise_missing=True).foo(...).then_return(...) - Refactor the logic when hooking multiple
then_returnsfor call proxies. Currently, it should work because existingside_effectis called, but it's a bit hairy - The matcher interface could be removed and instead we could just overwrite
__eq__for matchers
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mocktail-0.0.4.tar.gz
(3.6 kB
view details)
File details
Details for the file mocktail-0.0.4.tar.gz.
File metadata
- Download URL: mocktail-0.0.4.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd11f32ef0b846c553c5c7c11f624dcacb3c058a0537968cf31b97d195e5f311
|
|
| MD5 |
7c10b60786c49e4735f3842c8ca2f519
|
|
| BLAKE2b-256 |
a9730682c5e0e35282e242b155279bc908fe1bdb0adfbc6a658db4fff751bd9f
|