diff --git a/httpcore/__init__.py b/httpcore/__init__.py index 3aa98565..d6339324 100644 --- a/httpcore/__init__.py +++ b/httpcore/__init__.py @@ -10,6 +10,7 @@ from .exceptions import ( PoolTimeout, ProtocolError, ReadTimeout, + WriteTimeout, RedirectBodyUnavailable, RedirectLoop, ResponseClosed, diff --git a/tests/test_timeouts.py b/tests/test_timeouts.py index 7e33a3ab..17a16935 100644 --- a/tests/test_timeouts.py +++ b/tests/test_timeouts.py @@ -6,6 +6,7 @@ from httpcore import ( PoolLimits, PoolTimeout, ReadTimeout, + WriteTimeout, TimeoutConfig, ) @@ -19,6 +20,16 @@ async def test_read_timeout(server): await client.get("http://127.0.0.1:8000/slow_response") +@pytest.mark.asyncio +async def test_write_timeout(server): + timeout = TimeoutConfig(write_timeout=0.0001) + + async with AsyncClient(timeout=timeout) as client: + with pytest.raises(WriteTimeout): + data = b"*" * 1024 * 1024 * 10 + await client.put("http://127.0.0.1:8000/slow_response", data=data) + + @pytest.mark.asyncio async def test_connect_timeout(server): timeout = TimeoutConfig(connect_timeout=0.0001)