跳转到主要内容

使用requests_mock和responses与Flask测试客户端一起使用的辅助工具。

项目描述

Build Status codecov PyPI Documentation Status

requests-mock-flask

requests-mock-flask有助于使用Flaskhttprettyresponsesrequests-mock测试Flask应用程序。

安装

需要Python 3.12+。

pip install requests-mock-flask

使用示例

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!'

使用场景

  • 使用requests或其他Python API测试Flask应用程序。

  • 创建一个测试套件,可以测试Flask应用程序以及实时Web应用程序,以制作经过验证的假数据。

  • 测试一个调用您拥有源代码的Flask应用程序的服务。

完整文档

有关更多信息,包括如何贡献,请参阅完整文档

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

requests_mock_flask-2024.8.30.1.tar.gz (23.3 kB 查看散列值)

上传时间 源代码

构建分发

requests_mock_flask-2024.8.30.1-py2.py3-none-any.whl (7.1 kB 查看散列值)

上传时间 Python 2 Python 3

由以下机构支持