请求的模拟库。
项目描述
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 查看哈希值)