Python wrapper & utils for the Mountebank over the wire test double tool.
Project description
mbtest
Opinionated Python wrapper & utils for the Mountebank over the wire test double tool.
Includes pytest fixture and PyHamcrest matchers.
Setup
Install with pip:
pip install mbtest
(As usual, use of a venv or virtualenv is recommended.) Also requires Mountebank to have been installed:
npm install mountebank@1.16 --production
Basic example
import requests
from hamcrest import assert_that, is_
from brunns.matchers.response import response_with
from mbtest.matchers import had_request
from mbtest.imposters import Imposter, Predicate, Response, Stub
def test_request_to_mock_server(mock_server):
# Set up mock server with required behavior
imposter = Imposter(Stub(Predicate(path="/test"),
Response(body="sausages")))
with mock_server(imposter) as server:
# Make request to mock server - exercise code under test here
response = requests.get("{}/test".format(imposter.url))
assert_that("We got the expected response",
response, is_(response_with(status_code=200, body="sausages")))
assert_that("The mock server recorded the request",
server, had_request(path="/test", method="GET"))
Needs a pytest fixture, most easily defined in conftest.py
:
import pytest
from mbtest import server
@pytest.fixture(scope="session")
def mock_server(request):
return server.mock_server(request)
Examples of more complex predicates can be found in the integration tests.
Developing
Requires make and tox. Run make precommit
tells you if you're OK to commit. For more options, run:
make help
Releasing
Requires hub, setuptools and twine. To release n.n.n
:
version="n.n.n" # Needs to match new version number in setup.py.
make precommit && git commit -am"Release $version" && git push # If not already all pushed, which it should be.
hub release create $version -m"Release $version"
python setup.py sdist bdist_wheel
twine upload dist/*$version*
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
mbtest-1.4.0.tar.gz
(12.4 kB
view hashes)
Built Distribution
mbtest-1.4.0-py3-none-any.whl
(15.4 kB
view hashes)