A better patch tool for python test.
Project description
Better patch for test.
Usage
patch module method
import sys
from wonderpatch import wonder
with wonder(os).cpu_count.called_once(return_value=12345):
assert os.cpu_count() == 12345
Use path is ok:
import sys
from wonderpatch import wonder
with wonder('os.cpu_count').called_once(return_value=12345):
assert os.cpu_count() == 12345
patch object
from wonderpatch import wonder
class TestObject:
def name(self):
return self.__class__.__name__
with wonder(TestObject.name).called_once(return_value='x'):
assert TestObject().name() == 'x'
It is also works for property:
from wonderpatch import wonder
class TestObject:
@property
def name(self):
return self.__class__.__name__
with wonder(TestObject.name).called_once(return_value='x'):
assert TestObject().name == 'x'
Multiple patch in one function
If you want to use multiple patches in one place, and do not want to write a verify long statement, use wonder.together:
from wonderpatch import wonder
with wonder.together():
wonder(TestObject.name).called_once(return_value='x')
wonder(TestObject.age).called_once(return_value='x')
assert TestObject().name() == 'x'
assert TestObject().age == 'x'
Or as a decorator:
from wonderpatch import wonder
@wonder.together
def test_name():
wonder(TestObject.name).called_once(return_value='x')
assert TestObject().name() == 'x'
the wonder api
wonder(…).then_return(value: Any)
patch and set return value, works for called 0+ times
wonder(…).then_raise(exception)
patch and set raise value, works for called 0+ times
wonder(…).called(times=None, min=1, max=None, return_value=_empty, side_effect=_empty, only_self=False)
patch and set min or max times call, default is at least 1 time.
wonder(…).called_with(*args, **kwargs)
patch and set called at least once with args, kwargs
wonder(…).called_once_with(*args, **kwargs)
patch and set called once with args, kwargs
wonder(…).never_called()
patch and set never called.
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
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
Hashes for wonderpatch-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49cadd5095a0182769dbaf061cb7dd54a0a77da47df14b6737a5a9f4446495e0 |
|
MD5 | 5e8e0494ac989e5b9085c782c4cb78a8 |
|
BLAKE2b-256 | faaea5758353c9dccf87b00a32737123046d24e5ad2cbbdf2afc29d53c3c2e6a |