Skip to content

Commit 8bd8e74

Browse files
committed
Resolve merge conflict in auth.py
2 parents c8e2edc + 95d0a81 commit 8bd8e74

1 file changed

Lines changed: 17 additions & 10 deletions

File tree

src/nwp500/auth.py

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -367,11 +367,7 @@ def __init__(
367367
async def __aenter__(self) -> "NavienAuthClient":
368368
"""Async context manager entry."""
369369
if self._owned_session:
370-
resolver = aiohttp.ThreadedResolver()
371-
connector = aiohttp.TCPConnector(resolver=resolver)
372-
self._session = aiohttp.ClientSession(
373-
connector=connector, timeout=self.timeout
374-
)
370+
self._session = self._create_session()
375371

376372
# Check if we have valid stored tokens
377373
if self._auth_response and self._auth_response.tokens:
@@ -398,14 +394,24 @@ async def __aexit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None:
398394
if self._owned_session and self._session:
399395
await self._session.close()
400396

397+
def _create_session(self) -> aiohttp.ClientSession:
398+
"""Create an aiohttp ClientSession with ThreadedResolver.
399+
400+
ThreadedResolver uses Python's built-in socket module for DNS
401+
resolution, avoiding dependency on c-ares which can fail in
402+
containerized environments.
403+
404+
Returns:
405+
aiohttp.ClientSession configured with ThreadedResolver
406+
"""
407+
resolver = aiohttp.ThreadedResolver()
408+
connector = aiohttp.TCPConnector(resolver=resolver)
409+
return aiohttp.ClientSession(connector=connector, timeout=self.timeout)
410+
401411
async def _ensure_session(self) -> None:
402412
"""Ensure we have an active session."""
403413
if self._session is None:
404-
resolver = aiohttp.ThreadedResolver()
405-
connector = aiohttp.TCPConnector(resolver=resolver)
406-
self._session = aiohttp.ClientSession(
407-
connector=connector, timeout=self.timeout
408-
)
414+
self._session = self._create_session()
409415
self._owned_session = True
410416

411417
async def sign_in(
@@ -748,6 +754,7 @@ async def refresh_access_token(refresh_token: str) -> AuthTokens:
748754
url = f"{API_BASE_URL}{REFRESH_ENDPOINT}"
749755
payload = {"refreshToken": refresh_token}
750756

757+
# Use ThreadedResolver for reliable DNS in containerized environments
751758
resolver = aiohttp.ThreadedResolver()
752759
connector = aiohttp.TCPConnector(resolver=resolver)
753760
async with (

0 commit comments

Comments
 (0)