HTTP requests work with fully unset, partial, and None timeout fields.
(driver: Driver, server_url: URL)
| 738 | indirect=True, |
| 739 | ) |
| 740 | async def test_http_client_timeout(driver: Driver, server_url: URL): |
| 741 | """HTTP requests work with fully unset, partial, and None timeout fields.""" |
| 742 | assert isinstance(driver, HTTPClientMixin) |
| 743 | |
| 744 | # timeout not set, default timeout should apply |
| 745 | request = Request("POST", server_url, content="test") |
| 746 | response = await driver.request(request) |
| 747 | assert response.status_code == 200 |
| 748 | async for resp in driver.stream_request(request, chunk_size=1024): |
| 749 | assert resp.status_code == 200 |
| 750 | |
| 751 | # timeout is float or none |
| 752 | request = Request("POST", server_url, content="test", timeout=10.0) |
| 753 | response = await driver.request(request) |
| 754 | assert response.status_code == 200 |
| 755 | async for resp in driver.stream_request(request, chunk_size=1024): |
| 756 | assert resp.status_code == 200 |
| 757 | |
| 758 | # all fields unset, default timeout should apply |
| 759 | request = Request("POST", server_url, content="test", timeout=Timeout()) |
| 760 | response = await driver.request(request) |
| 761 | assert response.status_code == 200 |
| 762 | async for resp in driver.stream_request(request, chunk_size=1024): |
| 763 | assert resp.status_code == 200 |
| 764 | |
| 765 | # only total set |
| 766 | request = Request("POST", server_url, content="test", timeout=Timeout(total=10.0)) |
| 767 | response = await driver.request(request) |
| 768 | assert response.status_code == 200 |
| 769 | async for resp in driver.stream_request(request, chunk_size=1024): |
| 770 | assert resp.status_code == 200 |
| 771 | |
| 772 | # explicit None (no timeout) |
| 773 | request = Request( |
| 774 | "POST", |
| 775 | server_url, |
| 776 | content="test", |
| 777 | timeout=Timeout(total=None, connect=None, read=None), |
| 778 | ) |
| 779 | response = await driver.request(request) |
| 780 | assert response.status_code == 200 |
| 781 | async for resp in driver.stream_request(request, chunk_size=1024): |
| 782 | assert resp.status_code == 200 |
| 783 | |
| 784 | # session with timeout not set |
| 785 | session = driver.get_session() |
| 786 | async with session: |
| 787 | request = Request("POST", server_url, content="test") |
| 788 | response = await session.request(request) |
| 789 | assert response.status_code == 200 |
| 790 | |
| 791 | # session with float or none timeout |
| 792 | session = driver.get_session(timeout=10.0) |
| 793 | async with session: |
| 794 | request = Request("POST", server_url, content="test") |
| 795 | response = await session.request(request) |
| 796 | assert response.status_code == 200 |
| 797 |
nothing calls this directly
no test coverage detected