mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 17:15:35 +00:00
aiohttp: Update tests
This commit is contained in:
committed by
Kevin McCarthy
parent
f9ce14d29a
commit
5362db2ebb
@@ -1,3 +1,4 @@
|
|||||||
|
import asyncio
|
||||||
import contextlib
|
import contextlib
|
||||||
import logging
|
import logging
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
@@ -323,20 +324,42 @@ def test_double_requests(tmpdir):
|
|||||||
|
|
||||||
|
|
||||||
def test_cookies(scheme, tmpdir):
|
def test_cookies(scheme, tmpdir):
|
||||||
url = scheme + (
|
async def run(scheme, tmpdir):
|
||||||
|
cookies_url = scheme + (
|
||||||
"://httpbin.org/response-headers?"
|
"://httpbin.org/response-headers?"
|
||||||
"set-cookie=" + urllib.parse.quote("cookie_1=val_1; Path=/") + "&"
|
"set-cookie=" + urllib.parse.quote("cookie_1=val_1; Path=/") + "&"
|
||||||
"Set-Cookie=" + urllib.parse.quote("Cookie_2=Val_2; Path=/")
|
"Set-Cookie=" + urllib.parse.quote("Cookie_2=Val_2; Path=/")
|
||||||
)
|
)
|
||||||
with vcr.use_cassette(str(tmpdir.join("cookies.yaml"))) as cassette:
|
home_url = scheme + "://httpbin.org/"
|
||||||
response, _ = get(url, output="json")
|
tmp = str(tmpdir.join("cookies.yaml"))
|
||||||
|
req_cookies = {"Cookie_3": "Val_3"}
|
||||||
|
req_headers = {"Cookie": "Cookie_4=Val_4"}
|
||||||
|
|
||||||
assert response.cookies.get("cookie_1").value == "val_1"
|
# ------------------------- Record -------------------------- #
|
||||||
assert response.cookies.get("Cookie_2").value == "Val_2"
|
with vcr.use_cassette(tmp) as cassette:
|
||||||
|
async with aiohttp.ClientSession() as session:
|
||||||
|
cookies_resp = await session.get(cookies_url)
|
||||||
|
home_resp = await session.get(
|
||||||
|
home_url, cookies=req_cookies, headers=req_headers
|
||||||
|
)
|
||||||
|
assert_responses(cookies_resp, home_resp)
|
||||||
|
|
||||||
with vcr.use_cassette(str(tmpdir.join("cookies.yaml"))) as cassette:
|
# -------------------------- Play --------------------------- #
|
||||||
response, _ = get(url, output="json")
|
with vcr.use_cassette(tmp, record_mode="none") as cassette:
|
||||||
assert cassette.play_count == 1
|
async with aiohttp.ClientSession() as session:
|
||||||
|
cookies_resp = await session.get(cookies_url)
|
||||||
|
home_resp = await session.get(
|
||||||
|
home_url, cookies=req_cookies, headers=req_headers
|
||||||
|
)
|
||||||
|
assert_responses(cookies_resp, home_resp)
|
||||||
|
|
||||||
assert response.cookies.get("cookie_1").value == "val_1"
|
def assert_responses(cookies_resp, home_resp):
|
||||||
assert response.cookies.get("Cookie_2").value == "Val_2"
|
assert cookies_resp.cookies.get("cookie_1").value == "val_1"
|
||||||
|
assert cookies_resp.cookies.get("Cookie_2").value == "Val_2"
|
||||||
|
request_cookies = home_resp.request_info.headers["cookie"]
|
||||||
|
assert "cookie_1=val_1" in request_cookies
|
||||||
|
assert "Cookie_2=Val_2" in request_cookies
|
||||||
|
assert "Cookie_3=Val_3" in request_cookies
|
||||||
|
assert "Cookie_4=Val_4" in request_cookies
|
||||||
|
|
||||||
|
asyncio.run(run(scheme, tmpdir))
|
||||||
|
|||||||
Reference in New Issue
Block a user