跳至主要内容

模拟requests包的响应

项目描述

https://badge.fury.io/py/requests-mock.png

简介

requests-mock 为您的测试代码提供构建块,以模拟测试代码中的HTTP requests 部分。有关更多信息,请参阅 文档

基础

requests 中,所有内容最终都会通过适配器来完成传输工作。 requests-mock 创建了一个自定义的 adapter,允许您在调用某些URI时预定义响应。

提供了一些方法来获取使用的适配器。

一个简单的示例

>>> import requests
>>> import requests_mock

>>> session = requests.Session()
>>> adapter = requests_mock.Adapter()
>>> session.mount('mock://', adapter)

>>> adapter.register_uri('GET', 'mock://test.com', text='data')
>>> resp = session.get('mock://test.com')
>>> resp.status_code, resp.text
(200, 'data')

显然,所有URL都以 mock:// 前缀并不实用,因此您可以使用 requests_mock.Mocker 将适配器放到合适的位置。

作为一个上下文管理器

>>> with requests_mock.Mocker() as m:
...     m.get('http://test.com', text='data')
...     requests.get('http://test.com').text
...
'data'

作为一个装饰器

>>> @requests_mock.Mocker()
... def test_func(m):
...     m.get('http://test.com', text='data')
...     return requests.get('http://test.com').text
...
>>> test_func()
'data'

作为一个pytest fixture

>>> def test_simple(requests_mock):
...    requests_mock.get('http://test.com', text='data')
...    assert 'data' == requests.get('http://test.com').text

有关更多信息,请参阅 文档

报告错误

开发和错误跟踪在 GitHub 上进行。

问题

StackOverflow 上有一个专门的 requests-mock 标签,您可以在那里提出使用问题。

许可证

根据Apache许可证版本2.0(“许可证”)授权;除非遵守许可证,否则不得使用此文件。您可以在以下位置获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据本许可证发布的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证的权限和限制的具体语言,请参阅许可证。

项目详情


下载文件

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

源分发

requests-mock-1.12.1.tar.gz (60.9 kB 查看散列值)

上传时间

构建分发

requests_mock-1.12.1-py2.py3-none-any.whl (27.7 kB 查看散列值)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面