Skip to content

Commit 36607da

Browse files
artslobasvetlov
authored andcommitted
Fix #3290 missing parameter 'raise_for_status' for aiohttp.request() (#3303)
1 parent cffc9bf commit 36607da

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

CHANGES/3290.bugfix

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix missing parameter ``raise_for_status`` for aiohttp.request()

aiohttp/client.py

+2
Original file line numberDiff line numberDiff line change
@@ -903,6 +903,7 @@ def request(method, url, *,
903903
compress=None,
904904
chunked=None,
905905
expect100=False,
906+
raise_for_status=False,
906907
connector=None,
907908
loop=None,
908909
read_until_eof=True,
@@ -965,6 +966,7 @@ def request(method, url, *,
965966
compress=compress,
966967
chunked=chunked,
967968
expect100=expect100,
969+
raise_for_status=raise_for_status,
968970
read_until_eof=read_until_eof,
969971
proxy=proxy,
970972
proxy_auth=proxy_auth,),

tests/test_client_functional.py

+39
Original file line numberDiff line numberDiff line change
@@ -2083,6 +2083,45 @@ async def handler_redirect(request):
20832083
resp.close()
20842084

20852085

2086+
async def test_request_raise_for_status_default(aiohttp_server) -> None:
2087+
async def handler(request):
2088+
raise web.HTTPBadRequest()
2089+
2090+
app = web.Application()
2091+
app.router.add_get('/', handler)
2092+
server = await aiohttp_server(app)
2093+
2094+
async with aiohttp.request('GET', server.make_url('/')) as resp:
2095+
assert resp.status == 400
2096+
2097+
2098+
async def test_request_raise_for_status_disabled(aiohttp_server) -> None:
2099+
async def handler(request):
2100+
raise web.HTTPBadRequest()
2101+
2102+
app = web.Application()
2103+
app.router.add_get('/', handler)
2104+
server = await aiohttp_server(app)
2105+
url = server.make_url('/')
2106+
2107+
async with aiohttp.request('GET', url, raise_for_status=False) as resp:
2108+
assert resp.status == 400
2109+
2110+
2111+
async def test_request_raise_for_status_enabled(aiohttp_server) -> None:
2112+
async def handler(request):
2113+
raise web.HTTPBadRequest()
2114+
2115+
app = web.Application()
2116+
app.router.add_get('/', handler)
2117+
server = await aiohttp_server(app)
2118+
url = server.make_url('/')
2119+
2120+
with pytest.raises(aiohttp.ClientResponseError):
2121+
async with aiohttp.request('GET', url, raise_for_status=True):
2122+
assert False, "never executed" # pragma: no cover
2123+
2124+
20862125
async def test_invalid_idna() -> None:
20872126
session = aiohttp.ClientSession()
20882127
try:

0 commit comments

Comments
 (0)