mockish¶
A thin layer of sugar atop Python's mock.
Overview¶
mockish
is a small tool I built to make life easier when writing tests in Python.
It provides:
-
Explicit alternatives to the nuanced
mock.Mock(side_effect=...)
argument, including:mockish.Mock(return_value=...)
mockish.Mock(return_call=...)
mockish.Mock(return_once=...)
mockish.Mock(return_each=...)
mockish.Mock(return_exception=...)
-
Methods for creating HTTP responses -- both
requests.Response
andhttpx.Response
objects -- that can be returned by the Mock, including:mockish.httpx.Response.from_dict(...)
mockish.requests.Response.from_dict(...)
Install¶
From PyPi:
pip install mockish
Use¶
Complete example of mocking a HTTP response:
from mockish import Mock, patch
from mockish.requests import Response
import requests
mock_resp = Response.from_dict({'hello': 'world'})
with patch.object(
requests,
'get',
Mock(return_once=mock_resp)
):
resp: requests.Response = requests.get('https://www.f2dv.com')
requests.get.assert_called_once()
print(resp)
> <Response [200]>
print(resp.json())
> {'hello': 'world'}
See the reference docs for more examples:
Brought to you by...