Helpers to use requests_mock and responses with a Flask test client.
Project description
requests-mock-flask
requests-mock-flask helps with testing Flask applications with httpretty, responses or requests-mock.
Installation
Requires Python 3.12+.
pip install requests-mock-flask
Usage example
import flask
import httpretty
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 a simple message."""
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!'
def test_httpretty_context_manager() -> None:
"""
It is possible to use the helper with a ``httpretty`` context
manager.
"""
with httpretty.core.httprettized():
add_flask_app_to_mock(
mock_obj=httpretty,
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!'
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for requests_mock_flask-2024.8.30.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b750b835b07a395267e5440a4fbb88caa043c57c0bb785e1687b03c127347ce |
|
MD5 | 501032de4c7f46d6b3cdf7258cee9a5d |
|
BLAKE2b-256 | c4e2ff0a60d1b00728c8f66ece46c9f6461cf86abde0c157d415d13cb65c02f3 |
Close
Hashes for requests_mock_flask-2024.8.30.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60534ef67ea01821a41f7da4d75b1338114814bd5a0bcb5f232a597df6945638 |
|
MD5 | d9dddc8103ea2e61c6d6ad6310d169de |
|
BLAKE2b-256 | 7c429d540b63544f9556626f69b0136eaec7e15d7f77cf603c5f09d913a9720b |