A utility for mocking out the Python HTTPX and HTTP Core libraries.
Project description
RESPX - Mock HTTPX with awesome request patterns and response side effects.
Documentation
Full documentation is available at lundberg.github.io/respx
QuickStart
RESPX is a simple, yet powerful, utility for mocking out the HTTPX, and HTTP Core, libraries.
Start by patching HTTPX
, using respx.mock
, then add request routes to mock responses.
import httpx
import respx
from httpx import Response
@respx.mock
def test_example():
my_route = respx.get("https://example.org/").mock(return_value=Response(204))
response = httpx.get("https://example.org/")
assert my_route.called
assert response.status_code == 204
Read the User Guide for a complete walk-through.
pytest + httpx
For a neater pytest
experience, RESPX includes a respx_mock
fixture for easy HTTPX
mocking, along with an optional respx
marker to fine-tune the mock settings.
import httpx
import pytest
def test_default(respx_mock):
respx_mock.get("https://foo.bar/").mock(return_value=httpx.Response(204))
response = httpx.get("https://foo.bar/")
assert response.status_code == 204
@pytest.mark.respx(base_url="https://foo.bar")
def test_with_marker(respx_mock):
respx_mock.get("/baz/").mock(return_value=httpx.Response(204))
response = httpx.get("https://foo.bar/baz/")
assert response.status_code == 204
Installation
Install with pip:
$ pip install respx
Requires Python 3.6+ and HTTPX 0.20+. See Changelog for older HTTPX compatibility.
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
Built Distribution
Hashes for respx-0.18.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 869abfbe760d3d24f6d8c5518ebb2c7c17cded176589b1aced94e9471d1c3d78 |
|
MD5 | d157f452418cd0a62941c7f1282240c8 |
|
BLAKE2b-256 | a41c42176dacc9cbf4c40aa676f439a4f27e41e3cc603f6b78d29bd69a69dbcf |