Skip to main content

pytest-mock-server

PyPI version Python versions See Build Status on Travis CI

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.

Release files for pytest-mock-server 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-mock-server 0.3.0
File Size Uploaded
pytest-mock-server-0.3.0.tar.gz 4.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pytest-mock-server 0.3.0
File Interpreter ABI Platform
pytest_mock_server-0.3.0-py3-none-any.whl Python 3 none any Details
pytest_mock_server-0.3.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 12.8 kB

Release files / pytest-mock-server-0.3.0.tar.gz

Download URL pytest-mock-server-0.3.0.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ba62b3e1933c12408afa9525c82b9914398a8f923293b08545a12508774e03af
BLAKE2b-256 checksum
How to use checksums
099a5dc3e93aa3ba8b01e219b52d1305b84bfa828d23a797b313fadc9a99d6e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / pytest_mock_server-0.3.0-py3-none-any.whl

Download URL pytest_mock_server-0.3.0-py3-none-any.whl
Size 4.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b7a190ed614eb220f23c6962b8d5655706866f35a52f72099456282c7caa543a
BLAKE2b-256 checksum
How to use checksums
a639419b1caeda51d34f9db8a583b4fdcd50698cb9a8847567e9dac50d11589e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / pytest_mock_server-0.3.0-py2.py3-none-any.whl

Download URL pytest_mock_server-0.3.0-py2.py3-none-any.whl
Size 4.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
acddccc82c0fe3e3bb05cedc7dd946282f8d552cbe322adbeb2f4f3d9ffb7633
BLAKE2b-256 checksum
How to use checksums
43961ddca06533c9bd770290b938236bc7762a005327951df6dc2434d1617e2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release history Release notifications | RSS feed

This release

0.3.0 This release

3 release files

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page