python-requests的VCR模拟
项目描述
Betamax是VCR的requests模拟。这将使模拟请求变得容易得多。它在Travis CI上进行了测试。
用更幽默的方式来说:“Betamax记录您的HTTP交互,这样NSA就不需要了。”
使用示例
from betamax import Betamax
from requests import Session
from unittest import TestCase
with Betamax.configure() as config:
config.cassette_library_dir = 'tests/fixtures/cassettes'
class TestGitHubAPI(TestCase):
def setUp(self):
self.session = Session()
self.headers.update(...)
# Set the cassette in a line other than the context declaration
def test_user(self):
with Betamax(self.session) as vcr:
vcr.use_cassette('user')
resp = self.session.get('https://api.github.com/user',
auth=('user', 'pass'))
assert resp.json()['login'] is not None
# Set the cassette in line with the context declaration
def test_repo(self):
with Betamax(self.session).use_cassette('repo'):
resp = self.session.get(
'https://api.github.com/repos/sigmavirus24/github3.py'
)
assert resp.json()['owner'] != {}
它到底做了什么?
如果您不熟悉VCR,可能需要更好地了解Betamax的功能。
Betamax拦截您发出的每个请求,并尝试找到已拦截并记录的匹配请求。然后可以发生两件事:
如果找到匹配的请求,它将返回与之关联的响应。
如果没有找到匹配的请求,并且允许记录新的响应,它将发出请求,记录响应并返回响应。
记录的请求和相应的响应(也称为交互)存储在名为磁带的文件中。(文档的示例部分中可以看到一个示例磁带。)您存储磁带的目录称为您的库,或您的磁带库。
VCR磁带兼容性
截至目前,Betamax可以使用任何VCR录制磁带。唯一的限制是python-requests在每个响应中返回一个URL。VCR现在不会将这个URL存储在磁带中,但我们将这样做。不幸的是,任何用于回放响应的VCR录制磁带都不会有返回的响应的URL属性。这是一个小麻烦,但不是可以解决的问题。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
betamax-0.9.0.tar.gz (80.0 kB 查看哈希)
构建分发
betamax-0.9.0-py2.py3-none-any.whl (33.4 kB 查看哈希)
关闭
betamax-0.9.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 82316e1679bc6879e3c83318d016b54b7c9225ff08c4462de4813e22038d5f94 |
|
MD5 | cd7f35054a5a308072996e874473f620 |
|
BLAKE2b-256 | c2a2b5a47f7c57ef30337503bf7ea959e498a314018eb74dd833d4bd4a689e03 |
关闭
betamax-0.9.0-py2.py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 880d6da87eaf7e61c42bdc4240f0ac04ab5365bd7f2798784c18d37d8cf747bc |
|
MD5 | 23f888268727aa9b4561172b08a5f315 |
|
BLAKE2b-256 | ac8084dfae1dea86beb985c9aeaf907a7c98e1dd9de2156c8dd2e336d868f38a |