Skip to content

Commit 48ac850

Browse files
yinghsienwucopybara-github
authored andcommitted
fix: catch google-auth wrapped errors
PiperOrigin-RevId: 905215860
1 parent 317d2af commit 48ac850

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

google/genai/_api_client.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
from google.auth.credentials import Credentials
4747
from google.auth.transport import mtls
4848
from google.auth.transport.requests import AuthorizedSession
49+
from google.auth import exceptions as auth_exceptions
4950
import httpx
5051
from pydantic import BaseModel
5152
from pydantic import ValidationError
@@ -1402,6 +1403,7 @@ async def _async_request_once(
14021403
aiohttp.ClientConnectorDNSError,
14031404
aiohttp.ClientOSError,
14041405
aiohttp.ServerDisconnectedError,
1406+
auth_exceptions.TransportError,
14051407
) as e:
14061408
await asyncio.sleep(1 + random.randint(0, 9))
14071409
logger.info('Retrying due to aiohttp error: %s' % e)
@@ -1479,6 +1481,7 @@ async def _async_request_once(
14791481
aiohttp.ClientConnectorDNSError,
14801482
aiohttp.ClientOSError,
14811483
aiohttp.ServerDisconnectedError,
1484+
auth_exceptions.TransportError,
14821485
) as e:
14831486
await asyncio.sleep(1 + random.randint(0, 9))
14841487
logger.info('Retrying due to aiohttp error: %s' % e)

google/genai/tests/client/test_client_close.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,19 @@ async def run():
153153
)
154154
)
155155
assert async_client._api_client._aiohttp_session is not None
156-
assert not async_client._api_client._aiohttp_session.closed
156+
if hasattr(async_client._api_client._aiohttp_session, 'closed'):
157+
assert not async_client._api_client._aiohttp_session.closed
157158
# Close the client and check that the session is closed.
158159
await async_client.aclose()
159-
assert async_client._api_client._aiohttp_session.closed
160+
if hasattr(async_client._api_client._aiohttp_session, 'closed'):
161+
assert async_client._api_client._aiohttp_session.closed
162+
else:
163+
from google.auth.aio.transport.sessions import AsyncAuthorizedSession
164+
165+
if isinstance(
166+
async_client._api_client._aiohttp_session, AsyncAuthorizedSession
167+
):
168+
assert async_client._api_client._aiohttp_session._auth_request._closed
160169

161170
asyncio.run(run())
162171

@@ -197,8 +206,17 @@ async def run():
197206
)
198207
)
199208
assert async_client._api_client._aiohttp_session is not None
200-
assert not async_client._api_client._aiohttp_session.closed
201-
202-
assert async_client._api_client._aiohttp_session.closed
209+
if hasattr(async_client._api_client._aiohttp_session, 'closed'):
210+
assert not async_client._api_client._aiohttp_session.closed
211+
212+
if hasattr(async_client._api_client._aiohttp_session, 'closed'):
213+
assert async_client._api_client._aiohttp_session.closed
214+
else:
215+
from google.auth.aio.transport.sessions import AsyncAuthorizedSession
216+
217+
if isinstance(
218+
async_client._api_client._aiohttp_session, AsyncAuthorizedSession
219+
):
220+
assert async_client._api_client._aiohttp_session._auth_request._closed
203221

204222
asyncio.run(run())

0 commit comments

Comments
 (0)