From 3642acc41cd752d9954d167dab47d787b0bcff9f Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 18 Apr 2026 13:40:20 -0400 Subject: [PATCH] fix(patreon): declare aiohttp/yarl deps and use public yarl.URL import Co-Authored-By: Claude Sonnet 4.6 --- backend/app/services/patreon_resolver.py | 3 ++- backend/requirements.txt | 4 ++++ backend/tests/services/test_patreon_resolver.py | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/backend/app/services/patreon_resolver.py b/backend/app/services/patreon_resolver.py index d1ab402..8bea712 100644 --- a/backend/app/services/patreon_resolver.py +++ b/backend/app/services/patreon_resolver.py @@ -12,6 +12,7 @@ import os from typing import Optional import aiohttp +from yarl import URL logger = logging.getLogger(__name__) @@ -42,7 +43,7 @@ def _load_cookie_jar(cookies_path: Optional[str]) -> Optional[aiohttp.CookieJar] for cookie in moz: jar.update_cookies( {cookie.name: cookie.value}, - response_url=aiohttp.helpers.URL( + response_url=URL( f"https://{cookie.domain.lstrip('.')}/" ), ) diff --git a/backend/requirements.txt b/backend/requirements.txt index a26ec2a..4103ee2 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -13,6 +13,10 @@ alembic celery[redis] redis +# HTTP client +aiohttp +yarl + # Utilities pydantic pydantic-settings diff --git a/backend/tests/services/test_patreon_resolver.py b/backend/tests/services/test_patreon_resolver.py index c7a31e5..d4822d3 100644 --- a/backend/tests/services/test_patreon_resolver.py +++ b/backend/tests/services/test_patreon_resolver.py @@ -1,6 +1,7 @@ """Unit tests for the Patreon campaign-ID resolver.""" +import asyncio + import aiohttp -import pytest from aioresponses import aioresponses from app.services.patreon_resolver import resolve_campaign_id @@ -55,7 +56,6 @@ async def test_network_error_returns_none(): async def test_timeout_returns_none(): - import asyncio with aioresponses() as mock: mock.get(CAMPAIGNS_URL, exception=asyncio.TimeoutError()) result = await resolve_campaign_id("mstsu", cookies_path=None)