pytest-mock-server 0.3.0

Last updated:

0 purchases

pytest-mock-server 0.3.0 Image
pytest-mock-server 0.3.0 Images
Add to Cart

Description:

pytestmockserver 0.3.0

Mock server plugin for pytest


Installation
You can install “pytest-mock-server” via pip from PyPI:
$ pip install pytest-mock-server


Usage

One handler
import pytest
import requests

@pytest.mark.server(url='/v1/books/', response=[{'id': 1}], method='GET')
def test_handler_responses():
response = requests.get('http://localhost:5000/v1/books/')
assert response.status_code == 200
assert response.json() == [{'id': 1}]


More than one handlers
import pytest
import requests

@pytest.mark.server(url='/v1/books/', response=[{'id': 1}], method='GET')
@pytest.mark.server(url='/v1/books/<book_id>/', response={'id': 1}, method='GET')
def test_handler_responses():
response = requests.get('http://localhost:5000/v1/books/')
assert response.status_code == 200
assert response.json() == [{'id': 1}]
response = requests.get('http://localhost:5000/v1/books/1/')
assert response.status_code == 200
assert response.json() == {'id': 1}


Callback executes before response returns
import pytest
import requests
import time

def sleep_two(*args, **kwargs):
time.sleep(2)

@pytest.mark.server(url='/v1/books/', response={}, callback=sleep_two)
def test_handler_responses():
"""Ensures Timeouts works"""
with pytest.raises(requests.exceptions.Timeout):
response = requests.get('http://localhost:5000/v1/books/', timeout=1)


Custom settings for server
import pytest
import requests

@pytest.mark.server(url='/v1/books/', response={})
@pytest.mark.server_settings(port=8000)
def test_handler_responses():
response = requests.get('http://localhost:8000/v1/books/')
assert response.status_code == 200
assert response.json() == {}



Contributing
Contributions are very welcome. Tests can be run with tox, please ensure
the coverage at least stays the same before you submit a pull request.


License
Distributed under the terms of the MIT license, “pytest-mock-server” is free and open source software


Issues
If you encounter any problems, please file an issue along with a detailed description.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.