@@ -331,6 +331,22 @@ def failing_delete(*args, **kwargs):
331331 transport .close ()
332332
333333
334+ def test_sync_transport_wraps_unexpected_errors_with_invalid_url_fallback ():
335+ transport = SyncTransport (api_key = "test-key" )
336+ original_get = transport .client .get
337+
338+ def failing_get (* args , ** kwargs ):
339+ raise RuntimeError ("boom" )
340+
341+ transport .client .get = failing_get # type: ignore[assignment]
342+ try :
343+ with pytest .raises (HyperbrowserError , match = "Request GET unknown URL failed" ):
344+ transport .get (None ) # type: ignore[arg-type]
345+ finally :
346+ transport .client .get = original_get # type: ignore[assignment]
347+ transport .close ()
348+
349+
334350def test_async_transport_put_wraps_unexpected_errors_with_url_context ():
335351 async def run () -> None :
336352 transport = AsyncTransport (api_key = "test-key" )
@@ -353,6 +369,27 @@ async def failing_put(*args, **kwargs):
353369 asyncio .run (run ())
354370
355371
372+ def test_async_transport_wraps_unexpected_errors_with_invalid_url_fallback ():
373+ async def run () -> None :
374+ transport = AsyncTransport (api_key = "test-key" )
375+ original_put = transport .client .put
376+
377+ async def failing_put (* args , ** kwargs ):
378+ raise RuntimeError ("boom" )
379+
380+ transport .client .put = failing_put # type: ignore[assignment]
381+ try :
382+ with pytest .raises (
383+ HyperbrowserError , match = "Request PUT unknown URL failed"
384+ ):
385+ await transport .put (None ) # type: ignore[arg-type]
386+ finally :
387+ transport .client .put = original_put # type: ignore[assignment]
388+ await transport .close ()
389+
390+ asyncio .run (run ())
391+
392+
356393def test_sync_transport_request_error_without_request_uses_fallback_url ():
357394 transport = SyncTransport (api_key = "test-key" )
358395 original_get = transport .client .get
0 commit comments