Need help with respx?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

lundberg
249 Stars 20 Forks BSD 3-Clause "New" or "Revised" License 385 Commits 5 Opened issues

Description

Mock HTTPX with awesome request patterns and response side effects 🦋

Services available

!
?

Need anything else?

Contributors list

RESPX

RESPX - Mock HTTPX with awesome request patterns and response side effects.


tests codecov PyPi Version Python Versions

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.