Skip to content

Commit f45de42

Browse files
patchback[bot]Dreamsorcererbdraco
authored
[PR #11013/3f7a2e98 backport][3.12] Readjust baseline for ClientRequest benchmarks (#11015)
Co-authored-by: Sam Bull <[email protected]> Co-authored-by: J. Nick Koston <[email protected]>
1 parent 6d13ccc commit f45de42

File tree

1 file changed

+62
-11
lines changed

1 file changed

+62
-11
lines changed

tests/test_benchmarks_client_request.py

Lines changed: 62 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,78 @@
11
"""codspeed benchmarks for client requests."""
22

33
import asyncio
4-
from http.cookies import Morsel
4+
from http.cookies import BaseCookie
55
from typing import Union
66

7+
from multidict import CIMultiDict
78
from pytest_codspeed import BenchmarkFixture
89
from yarl import URL
910

10-
from aiohttp.client_reqrep import ClientRequest
11+
from aiohttp.client_reqrep import ClientRequest, ClientResponse
12+
from aiohttp.cookiejar import CookieJar
13+
from aiohttp.helpers import TimerNoop
1114
from aiohttp.http_writer import HttpVersion11
15+
from aiohttp.tracing import Trace
1216

1317

1418
def test_client_request_update_cookies(
1519
loop: asyncio.AbstractEventLoop, benchmark: BenchmarkFixture
1620
) -> None:
17-
req = ClientRequest("get", URL("http://python.org"), loop=loop)
18-
morsel: "Morsel[str]" = Morsel()
19-
morsel.set(key="string", val="Another string", coded_val="really")
20-
morsel_cookie = {"str": morsel}
21+
url = URL("http://python.org")
22+
23+
async def setup():
24+
cookie_jar = CookieJar()
25+
cookie_jar.update_cookies({"string": "Another string"})
26+
cookies = cookie_jar.filter_cookies(url)
27+
assert cookies["string"].value == "Another string"
28+
req = ClientRequest("get", url, loop=loop)
29+
return req, cookies
30+
31+
req, cookies = loop.run_until_complete(setup())
2132

2233
@benchmark
2334
def _run() -> None:
24-
req.update_cookies(cookies=morsel_cookie)
35+
req.update_cookies(cookies=cookies)
2536

2637

2738
def test_create_client_request_with_cookies(
2839
loop: asyncio.AbstractEventLoop, benchmark: BenchmarkFixture
2940
) -> None:
3041
url = URL("http://python.org")
3142

43+
async def setup():
44+
cookie_jar = CookieJar()
45+
cookie_jar.update_cookies({"cookie": "value"})
46+
cookies = cookie_jar.filter_cookies(url)
47+
assert cookies["cookie"].value == "value"
48+
return cookies
49+
50+
cookies = loop.run_until_complete(setup())
51+
timer = TimerNoop()
52+
traces: list[Trace] = []
53+
headers = CIMultiDict[str]()
54+
3255
@benchmark
3356
def _run() -> None:
3457
ClientRequest(
3558
method="get",
3659
url=url,
3760
loop=loop,
38-
headers=None,
61+
params=None,
62+
skip_auto_headers=None,
63+
response_class=ClientResponse,
64+
proxy=None,
65+
proxy_auth=None,
66+
proxy_headers=None,
67+
timer=timer,
68+
session=None,
69+
ssl=True,
70+
traces=traces,
71+
trust_env=False,
72+
server_hostname=None,
73+
headers=headers,
3974
data=None,
40-
cookies={"cookie": "value"},
75+
cookies=cookies,
4176
auth=None,
4277
version=HttpVersion11,
4378
compress=False,
@@ -50,16 +85,32 @@ def test_create_client_request_with_headers(
5085
loop: asyncio.AbstractEventLoop, benchmark: BenchmarkFixture
5186
) -> None:
5287
url = URL("http://python.org")
88+
timer = TimerNoop()
89+
traces: list[Trace] = []
90+
headers = CIMultiDict({"header": "value", "another": "header"})
91+
cookies = BaseCookie[str]()
5392

5493
@benchmark
5594
def _run() -> None:
5695
ClientRequest(
5796
method="get",
5897
url=url,
5998
loop=loop,
60-
headers={"header": "value", "another": "header"},
99+
params=None,
100+
skip_auto_headers=None,
101+
response_class=ClientResponse,
102+
proxy=None,
103+
proxy_auth=None,
104+
proxy_headers=None,
105+
timer=timer,
106+
session=None,
107+
ssl=True,
108+
traces=traces,
109+
trust_env=False,
110+
server_hostname=None,
111+
headers=headers,
61112
data=None,
62-
cookies=None,
113+
cookies=cookies,
63114
auth=None,
64115
version=HttpVersion11,
65116
compress=False,

0 commit comments

Comments
 (0)