mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 17:15:35 +00:00
Extract cookies to client on every response
This is required because previous extraction code is now patched out by vcpy. Also handle headers with same key in responses.
This commit is contained in:
committed by
Kevin McCarthy
parent
023e41bb4c
commit
7d2d29de12
@@ -20,14 +20,22 @@ interactions:
|
||||
: \"python-httpx/0.12.1\", \n \"X-Amzn-Trace-Id\": \"Root=1-5ea778c9-ea76170da792abdbf7614067\"\
|
||||
\n }\n}\n"
|
||||
headers:
|
||||
access-control-allow-credentials: 'true'
|
||||
access-control-allow-origin: '*'
|
||||
connection: keep-alive
|
||||
content-length: '226'
|
||||
content-type: application/json
|
||||
date: Tue, 28 Apr 2020 00:28:57 GMT
|
||||
server: gunicorn/19.9.0
|
||||
via: my_own_proxy
|
||||
access-control-allow-credentials:
|
||||
- 'true'
|
||||
access-control-allow-origin:
|
||||
- '*'
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '226'
|
||||
content-type:
|
||||
- application/json
|
||||
date:
|
||||
- Tue, 28 Apr 2020 00:28:57 GMT
|
||||
server:
|
||||
- gunicorn/19.9.0
|
||||
via:
|
||||
- my_own_proxy
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
version: 1
|
||||
|
||||
@@ -210,3 +210,37 @@ def test_behind_proxy(do_request):
|
||||
|
||||
assert cassette_response.headers["Via"] == "my_own_proxy", str(cassette_response.headers)
|
||||
assert cassette_response.request.url == response.request.url
|
||||
|
||||
|
||||
def test_cookies(tmpdir, scheme, do_request):
|
||||
def client_cookies(client):
|
||||
return [c for c in client._client.cookies]
|
||||
def response_cookies(response):
|
||||
return [c for c in response.cookies]
|
||||
|
||||
client = do_request()
|
||||
assert client_cookies(client) == []
|
||||
|
||||
url = scheme + "://httpbin.org"
|
||||
testfile = str(tmpdir.join("cookies.yml"))
|
||||
with vcr.use_cassette(testfile):
|
||||
r1 = client("GET", url + "/cookies/set?k1=v1&k2=v2")
|
||||
assert response_cookies(r1.history[0]) == ['k1', 'k2']
|
||||
assert response_cookies(r1) == []
|
||||
|
||||
r2 = client("GET", url + "/cookies")
|
||||
assert len(r2.json()["cookies"]) == 2
|
||||
|
||||
assert client_cookies(client) == ['k1', 'k2']
|
||||
|
||||
|
||||
new_client = do_request()
|
||||
assert client_cookies(new_client) == []
|
||||
|
||||
with vcr.use_cassette(testfile) as cassette:
|
||||
cassette_response = new_client("GET", url + "/cookies/set?k1=v1&k2=v2")
|
||||
assert response_cookies(cassette_response.history[0]) == ['k1', 'k2']
|
||||
assert response_cookies(cassette_response) == []
|
||||
|
||||
assert cassette.play_count == 2
|
||||
assert client_cookies(new_client) == ['k1', 'k2']
|
||||
|
||||
Reference in New Issue
Block a user