Mock out calls to the python-ubersmith library
Usage
pytest-ubersmith makes it really easy to mock out API calls:
import ubersmith.client
def test_add_client(ubermock):
client_id = 1234
ubermock.client.add = client_id
assert ubersmith.client.add(login='test') == 1234
To have python-ubersmith raise a ResponseError, return an ubermock.ResponseError:
import ubersmith.client
import ubersmith.exceptions
def test_unknown_client(ubermock):
ubermock.client.get = ubermock.ResponseError('Invalid client!', 1)
with pytest.raises(ubersmith.exceptions.ResponseError):
ubersmith.client.get(client_id=1234)
If you need complete control over the response, you can return the whole Ubersmith JSON response:
import pytest
import ubersmith.client
import ubersmith.exceptions
def test_unknown_client_raw(ubermock):
ubermock.client.get.raw_response = {
'status': False,
'data': '',
'error_message': 'Invalid client',
'error_code': 1,
}
with pytest.raises(ubersmith.exceptions.ResponseError):
ubersmith.client.get(client_id=1234)
You can even pass a callable for dynamic responses:
import pytest
import ubersmith.client
import ubersmith.exceptions
def test_dynamic_client(ubermock):
def get_client(method, params, request, context):
# params is a MultiDict
if params['client_id'][0] == '1':
return {'client_id': 1}
else:
raise ubermock.ResponseError('Invalid client!', 1)
ubermock.client.get.response = get_client
assert ubersmith.client.get(client_id=1) == {'client_id': 1}
with pytest.raises(ubersmith.exceptions.ResponseError):
ubersmith.client.get(client_id=2)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file pytest-ubersmith-1.0.1.tar.gz.
File metadata
- Download URL: pytest-ubersmith-1.0.1.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad4e7fbcb84332fda7247debe06477cccd7e8423b8bfff32634e33cc9ba2d215
|
|
| MD5 |
19f4d936490469c2ab0db9b1be29aacf
|
|
| BLAKE2b-256 |
bfdd366528f7c2f8555a32b2dcec34084d2d8638a13f197feb49ee9fb9fbd0e4
|