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 responses or requests-mock.

Installation

Requires Python 3.9+.

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.

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-2021.12.28.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

requests_mock_flask-2021.12.28-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: requests-mock-flask-2021.12.28.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for requests-mock-flask-2021.12.28.tar.gz
Algorithm Hash digest
SHA256 5b504364e705857f0bc87e5eeb656c0064dd9ab8345d758c5d417de0cebf58d9
MD5 1da29cba2f87bf3391b55667721ec522
BLAKE2b-256 3ae04faaffc9f88f3d3c4ecc12a2d39d5c678efd7838a198d06e913d33cc5a5c

See more details on using hashes here.

File details

Details for the file requests_mock_flask-2021.12.28-py3-none-any.whl.

File metadata

  • Download URL: requests_mock_flask-2021.12.28-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

File hashes

Hashes for requests_mock_flask-2021.12.28-py3-none-any.whl
Algorithm Hash digest
SHA256 a88d9ab894b481569fe133c35f227a7caf757b1542d65085b544f215d665a5c9
MD5 a7ff1905626f705a767e6ef293f9ae92
BLAKE2b-256 d901521e09b5b51b8ac64801b0e0322f7964bbf2c5ec84a9500382c8b20415d0

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