Skip to main content

Build Status codecov PyPI Documentation Status

requests-mock-flask

requests-mock-flask helps with testing Flask applications with responses or requests-mock.

Installation

Requires Python 3.8+.

pip install requests-mock-flask

Usage example

import flask
import requests
import responses
import requests_mock

from requests_mock_flask import add_flask_app_to_mock

app = flask.Flask(__name__)

@app.route('/')
def _() -> str:
    return 'Hello, World!'

@responses.activate
def test_responses_decorator() -> None:
    """
    It is possible to use the helper with a ``responses`` decorator.
    """
    add_flask_app_to_mock(
        mock_obj=responses,
        flask_app=app,
        base_url='http://www.example.com',
    )

    response = requests.get('http://www.example.com')

    assert response.status_code == 200
    assert response.text == 'Hello, World!'

def test_responses_context_manager() -> None:
    """
    It is possible to use the helper with a ``responses`` context manager.
    """
    with responses.RequestsMock(
        assert_all_requests_are_fired=False,
    ) as resp_m:
        add_flask_app_to_mock(
            mock_obj=resp_m,
            flask_app=app,
            base_url='http://www.example.com',
        )

        response = requests.get('http://www.example.com')

    assert response.status_code == 200
    assert response.text == 'Hello, World!'

def test_requests_mock_context_manager() -> None:
    """
    It is possible to use the helper with a ``requests_mock`` context
    manager.
    """
    with requests_mock.Mocker() as resp_m:
        add_flask_app_to_mock(
            mock_obj=resp_m,
            flask_app=app,
            base_url='http://www.example.com',
        )

        response = requests.get('http://www.example.com')

    assert response.status_code == 200
    assert response.text == 'Hello, World!'

def test_requests_mock_adapter() -> None:
    """
    It is possible to use the helper with a ``requests_mock`` fixture.
    """
    session = requests.Session()
    adapter = requests_mock.Adapter()
    session.mount('mock', adapter)

    add_flask_app_to_mock(
        mock_obj=adapter,
        flask_app=app,
        base_url='mock://www.example.com',
    )

    response = session.get('mock://www.example.com')

    assert response.status_code == 200
    assert response.text == 'Hello, World!'

Use cases

  • Use the requests API for testing applications.

  • Create a test suite which can test a Flask application as well as a live web application, to make a verified fake.

  • Test a service which calls a Flask application that you have the source code for.

Full documentation

See the full documentation for more information including how to contribute.

Release files for requests-mock-flask 2020.9.16.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 requests-mock-flask 2020.9.16.0
File Size Uploaded
requests-mock-flask-2020.9.16.0.tar.gz 20.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for requests-mock-flask 2020.9.16.0
File Interpreter ABI Platform
requests_mock_flask-2020.9.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.7 kB

Release files / requests-mock-flask-2020.9.16.0.tar.gz

Download URL requests-mock-flask-2020.9.16.0.tar.gz
Size 20.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7ad1ef0feb1f1ac9b6816d6ea223ae8f24ff63c113399b4d576097b6397763a6
BLAKE2b-256 checksum
How to use checksums
cd1fa6ad75e5732b90ead07ad8e84398aee78507fdf76266b21bf0ad4e75de60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Release files / requests_mock_flask-2020.9.16.0-py3-none-any.whl

Download URL requests_mock_flask-2020.9.16.0-py3-none-any.whl
Size 5.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9aa5ec50f02dab7c868d8b0a5ce6636b5888eccf3fb6dcff85d9671ad4829fe8
BLAKE2b-256 checksum
How to use checksums
e7f690b88b61d6c92b10cfea94adbb0415efd66c5ad41e70ddaf35242558302c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
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