mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-11 18:06:10 +00:00
Merge pull request #740 from kevin1024/issue-512-fix-query-param-filter-for-aiohttp
Fix query param filter for aiohttp (fixes #517)
This commit is contained in:
@@ -440,3 +440,19 @@ def test_not_allow_redirects(tmpdir, mockbin):
|
|||||||
assert response.url.path == "/redirect/308/5"
|
assert response.url.path == "/redirect/308/5"
|
||||||
assert response.status == 308
|
assert response.status == 308
|
||||||
assert cassette.play_count == 1
|
assert cassette.play_count == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_filter_query_parameters(tmpdir, httpbin):
|
||||||
|
url = httpbin + "?password=secret"
|
||||||
|
path = str(tmpdir.join("query_param_filter.yaml"))
|
||||||
|
|
||||||
|
with vcr.use_cassette(path, filter_query_parameters=["password"]) as cassette:
|
||||||
|
get(url)
|
||||||
|
|
||||||
|
assert "password" not in cassette.requests[0].url
|
||||||
|
assert "secret" not in cassette.requests[0].url
|
||||||
|
|
||||||
|
with open(path) as f:
|
||||||
|
cassette_content = f.read()
|
||||||
|
assert "password" not in cassette_content
|
||||||
|
assert "secret" not in cassette_content
|
||||||
|
|||||||
@@ -45,13 +45,18 @@ def test_filter_basic_auth(tmpdir, httpbin):
|
|||||||
|
|
||||||
|
|
||||||
def test_filter_querystring(tmpdir, httpbin):
|
def test_filter_querystring(tmpdir, httpbin):
|
||||||
url = httpbin.url + "/?foo=bar"
|
url = httpbin.url + "/?password=secret"
|
||||||
cass_file = str(tmpdir.join("filter_qs.yaml"))
|
cass_file = str(tmpdir.join("filter_qs.yaml"))
|
||||||
with vcr.use_cassette(cass_file, filter_query_parameters=["foo"]):
|
with vcr.use_cassette(cass_file, filter_query_parameters=["password"]):
|
||||||
urlopen(url)
|
urlopen(url)
|
||||||
with vcr.use_cassette(cass_file, filter_query_parameters=["foo"]) as cass:
|
with vcr.use_cassette(cass_file, filter_query_parameters=["password"]) as cass:
|
||||||
urlopen(url)
|
urlopen(url)
|
||||||
assert "foo" not in cass.requests[0].url
|
assert "password" not in cass.requests[0].url
|
||||||
|
assert "secret" not in cass.requests[0].url
|
||||||
|
with open(cass_file) as f:
|
||||||
|
cassette_content = f.read()
|
||||||
|
assert "password" not in cassette_content
|
||||||
|
assert "secret" not in cassette_content
|
||||||
|
|
||||||
|
|
||||||
def test_filter_post_data(tmpdir, httpbin):
|
def test_filter_post_data(tmpdir, httpbin):
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ def build_response(vcr_request, vcr_response, history):
|
|||||||
headers=_deserialize_headers(vcr_request.headers),
|
headers=_deserialize_headers(vcr_request.headers),
|
||||||
real_url=URL(vcr_request.url),
|
real_url=URL(vcr_request.url),
|
||||||
)
|
)
|
||||||
response = MockClientResponse(vcr_request.method, URL(vcr_response.get("url")), request_info=request_info)
|
response = MockClientResponse(vcr_request.method, URL(vcr_request.url), request_info=request_info)
|
||||||
response.status = vcr_response["status"]["code"]
|
response.status = vcr_response["status"]["code"]
|
||||||
response._body = vcr_response["body"].get("string", b"")
|
response._body = vcr_response["body"].get("string", b"")
|
||||||
response.reason = vcr_response["status"]["message"]
|
response.reason = vcr_response["status"]["message"]
|
||||||
@@ -163,7 +163,6 @@ async def record_response(cassette, vcr_request, response):
|
|||||||
"status": {"code": response.status, "message": response.reason},
|
"status": {"code": response.status, "message": response.reason},
|
||||||
"headers": _serialize_headers(response.headers),
|
"headers": _serialize_headers(response.headers),
|
||||||
"body": body,
|
"body": body,
|
||||||
"url": str(response.url),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cassette.append(vcr_request, vcr_response)
|
cassette.append(vcr_request, vcr_response)
|
||||||
|
|||||||
Reference in New Issue
Block a user