Skip to main content

Helpers to use requests_mock and responses with a Flask test client.

Project description

Build Status codecov PyPI Documentation Status

requests-mock-flask

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

Installation

Requires Python 3.11+.

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("test_app")

@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 requests or other Python APIs for testing Flask 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.

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

requests-mock-flask-2023.5.14.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

requests_mock_flask-2023.5.14-py2.py3-none-any.whl (7.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file requests-mock-flask-2023.5.14.tar.gz.

File metadata

File hashes

Hashes for requests-mock-flask-2023.5.14.tar.gz
Algorithm Hash digest
SHA256 0e68cad05019acd51e9bed3420221f44d41e3f285ef0be3fab26543c71c50bf0
MD5 1b349f08e0dd5f400a50eda945e5e4fc
BLAKE2b-256 b7a74117fac383a1f59eba0ea19d809abec6f515b4edbb46b2df5f7a4e4e9881

See more details on using hashes here.

File details

Details for the file requests_mock_flask-2023.5.14-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for requests_mock_flask-2023.5.14-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5bff3a6c2e40bf628058653d552baeeadd5de7c37f3b70750b2aa92eb1e9cfaa
MD5 5b7fb6602294ac5594f07343df9961ac
BLAKE2b-256 2c7cbd5c740ed2507f4b4c51ba4b992aab295acac1eb03370cf3c48360babef1

See more details on using hashes here.

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