@@ -264,13 +264,13 @@ def download_handler(request: httpx.Request) -> httpx.Response:
264264 client_module = importlib .import_module (
265265 f"{ generated_contract_package } .clients.async_client"
266266 )
267- client = client_module .AsyncClient ()
267+ client = client_module .AsyncClient (timeout = 1.23 )
268268 thing , upload , download , empty = asyncio .run (_run_async_contract (client ))
269269 else :
270270 client_module = importlib .import_module (
271271 f"{ generated_contract_package } .clients.sync_client"
272272 )
273- client = client_module .SyncClient ()
273+ client = client_module .SyncClient (timeout = 1.23 )
274274 thing = client .getThing (X_Test_Header = "required" )
275275 upload = client .uploadDocument (
276276 data = {"file" : ("doc.txt" , b"hello" , "text/plain" )}
@@ -287,6 +287,12 @@ def download_handler(request: httpx.Request) -> httpx.Response:
287287 assert thing_request .headers ["X-Test-Header" ] == "required"
288288 assert thing_request .headers ["X-Optional-Header" ] == "AU"
289289 assert thing_request .url .params ["brand" ] == "NRMA"
290+ assert thing_request .extensions ["timeout" ] == {
291+ "connect" : 1.23 ,
292+ "read" : 1.23 ,
293+ "write" : 1.23 ,
294+ "pool" : 1.23 ,
295+ }
290296
291297 upload_request = requests [1 ]
292298 assert upload_request .headers ["content-type" ].startswith ("multipart/form-data" )
@@ -431,8 +437,11 @@ def test_generated_sse_data_payloads_use_declared_schema(
431437 respx_mock ,
432438 async_client ,
433439):
434- respx_mock .get ("http://testserver/events" ).mock (
435- return_value = httpx .Response (
440+ requests : list [httpx .Request ] = []
441+
442+ def events_handler (request : httpx .Request ) -> httpx .Response :
443+ requests .append (request )
444+ return httpx .Response (
436445 200 ,
437446 content = (
438447 b"event: update\n "
@@ -441,27 +450,36 @@ def test_generated_sse_data_payloads_use_declared_schema(
441450 ),
442451 headers = {"content-type" : "text/event-stream" },
443452 )
453+
454+ respx_mock .get ("http://testserver/events" ).mock (
455+ side_effect = events_handler
444456 )
445457 models = importlib .import_module (f"{ generated_contract_package } .models" )
446458
447459 if async_client :
448460 client_module = importlib .import_module (
449461 f"{ generated_contract_package } .clients.async_client"
450462 )
451- client = client_module .AsyncClient ()
463+ client = client_module .AsyncClient (timeout = 2.34 )
452464 first_data_item = asyncio .run (_first_async_sse_data_item (client ))
453465 else :
454466 client_module = importlib .import_module (
455467 f"{ generated_contract_package } .clients.sync_client"
456468 )
457- client = client_module .SyncClient ()
469+ client = client_module .SyncClient (timeout = 2.34 )
458470 first_data_item = next (
459471 item for item in client .getEvents () if not isinstance (item , str )
460472 )
461473
462474 assert isinstance (first_data_item , models .EventPayload )
463475 assert first_data_item .message == "ok"
464476 assert first_data_item .value == 42.5
477+ assert requests [0 ].extensions ["timeout" ] == {
478+ "connect" : 2.34 ,
479+ "read" : 2.34 ,
480+ "write" : 2.34 ,
481+ "pool" : 2.34 ,
482+ }
465483
466484
467485async def _run_async_configured_contract (client ):
0 commit comments