Skip to main content

A asynchronous temporary web server to repond to requests

Project description

Local Responder

Local Responder is a helper function that creates a simple web server with just one view that has only one purpose, to return simple data.

This is created just for the purpose of using in tests, to mock out an API in a very simple manner.

Usage

You can import the respond function and use it as an asynchronous context manager

import aiohttp
from local_responder import respond

async def func() -> None:
    async with aiohttp.ClientSession() as session:
        async with respond(
            json={"status": "OK"},
            path="/health",
            method="get",
            status_code=200,
        ):
            response = session.get('http://localhost:5000/health')

            data = await response.json()

            assert data == {"status": "OK"}
            assert response.status_code == 200

        async with respond(
            json={"status": "Error"},
            path="/health",
            method="get",
            status_code=500,
        ):
            response = session.get('http://localhost:5000/health')

            data = await response.json()

            assert data == {"status": "Error"}
            assert response.status_code == 500

The context manager will raise an error if a request is made to an undefined path or using an unsupported method.

You need to provide one of json, text or body for the view to return, the other arguments are all optional, defaulting to creating a GET view with a status code 200 and listen on port 5000.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

local-responder-0.1.1.tar.gz (3.1 kB view hashes)

Uploaded Source

Built Distribution

local_responder-0.1.1-py3-none-any.whl (2.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page