Skip to content

Commit 1be34f2

Browse files
authored
fix: timeout option support with fetch api (#2947)
1 parent 6e9ff7a commit 1be34f2

File tree

5 files changed

+21
-2
lines changed

5 files changed

+21
-2
lines changed

playwright/_impl/_fetch.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,7 @@ async def _inner_fetch(
412412
self._timeout_settings.timeout,
413413
{
414414
"url": url,
415+
"timeout": timeout,
415416
"params": object_to_array(params) if isinstance(params, dict) else None,
416417
"encodedParams": params if isinstance(params, str) else None,
417418
"method": method,

tests/async/test_fetch_global.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,15 @@ async def test_should_support_global_timeout_option(
8989
await request.get(server.EMPTY_PAGE)
9090

9191

92+
async def test_should_support_timeout_option_in_get_method(
93+
playwright: Playwright, server: Server
94+
) -> None:
95+
request = await playwright.request.new_context()
96+
server.set_route("/empty.html", lambda req: None)
97+
with pytest.raises(Error, match="APIRequestContext.get: Timeout 123ms exceeded."):
98+
await request.get(server.EMPTY_PAGE, timeout=123)
99+
100+
92101
async def test_should_propagate_extra_http_headers_with_redirects(
93102
playwright: Playwright, server: Server
94103
) -> None:

tests/async/test_page_request_intercept.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def _handler(request: TestServerRequest) -> None:
3434
async def handle(route: Route) -> None:
3535
with pytest.raises(Error) as error:
3636
await route.fetch(timeout=1000)
37-
assert "Timeout 1000ms exceeded" in error.value.message
37+
assert "Route.fetch: Timeout 1000ms exceeded." in error.value.message
3838

3939
await page.route("**/*", lambda route: handle(route))
4040
with pytest.raises(Error) as error:

tests/sync/test_fetch_global.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ def test_should_support_global_timeout_option(
7171
request.get(server.EMPTY_PAGE)
7272

7373

74+
def test_should_support_timeout_option_in_get_method(
75+
playwright: Playwright, server: Server
76+
) -> None:
77+
request = playwright.request.new_context()
78+
server.set_route("/empty.html", lambda req: None)
79+
with pytest.raises(Error, match="APIRequestContext.get: Timeout 123ms exceeded."):
80+
request.get(server.EMPTY_PAGE, timeout=123)
81+
82+
7483
def test_should_propagate_extra_http_headers_with_redirects(
7584
playwright: Playwright, server: Server
7685
) -> None:

tests/sync/test_page_request_intercept.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def _handle(request: TestServerRequest) -> None:
3434
def handle(route: Route) -> None:
3535
with pytest.raises(Error) as error:
3636
route.fetch(timeout=1000)
37-
assert "Request timed out after 1000ms" in error.value.message
37+
assert "Route.fetch: Timeout 1000ms exceeded." in error.value.message
3838

3939
page.route("**/*", lambda route: handle(route))
4040
with pytest.raises(Error) as error:

0 commit comments

Comments
 (0)