跳转到主要内容

请求的模拟库。

项目描述

httmock

Python 2.7和3.4+的requests模拟库。

安装

pip install httmock

或者,如果您是Gentoo用户

emerge dev-python/httmock

用法

您可以使用它来模拟第三方API和内部使用requests的测试库,条件性地使用带有urlmatch装饰器的模拟回复

from httmock import urlmatch, HTTMock
import requests

@urlmatch(netloc=r'(.*\.)?google\.com$')
def google_mock(url, request):
    return 'Feeling lucky, punk?'

with HTTMock(google_mock):
    r = requests.get('http://google.com/')
print r.content  # 'Feeling lucky, punk?'

all_requests装饰器不会条件性地阻止真实请求。如果您返回一个字典,它将映射到返回的requests.Response对象

from httmock import all_requests, HTTMock
import requests

@all_requests
def response_content(url, request):
	return {'status_code': 200,
	        'content': 'Oh hai'}

with HTTMock(response_content):
	r = requests.get('https://foo_bar')

print r.status_code
print r.content

如果您传递了Set-Cookie头,requests.Response.cookies将包含这些值。您也可以直接使用response方法而不是返回一个字典

from httmock import all_requests, response, HTTMock
import requests

@all_requests
def response_content(url, request):
	headers = {'content-type': 'application/json',
	           'Set-Cookie': 'foo=bar;'}
	content = {'message': 'API rate limit exceeded'}
	return response(403, content, headers, None, 5, request)

with HTTMock(response_content):
	r = requests.get('https://api.github.com/users/whatever')

print r.json().get('message')
print r.cookies['foo']

项目详情


下载文件

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

源代码发行版

httmock-1.4.0.tar.gz (4.8 kB 查看哈希值)

上传于 源代码

构建分布版

httmock-1.4.0-py3-none-any.whl (4.8 kB 查看哈希值)

上传于 Python 3

由以下支持