refactor(api): snapshot explore banner feature flag (#40555)

This commit is contained in:
非法操作 authored and GitHub committed 2026-08-19 10:34:37 +00:00
1 parent 532489babd
commit 356e3a8ab6
3 files changed
+10 -10

No files matched your search

+1 -1
View File
@@ -123,7 +123,7 @@ def build_application_services(
),
explore_banner_queries=ExploreBannerQueryService(
banners=ExploreBannerQueryRepository(client=database_client),
is_enabled=FeatureService.is_explore_banner_enabled,
enabled=FeatureService.is_explore_banner_enabled(),
),
schema_definitions=SchemaDefinitionService(source_factory=SchemaManager),
setup=SetupService(
+4 -4
View File
@@ -3,7 +3,7 @@
ExploreBanner is the legacy contract name shared by the API, feature flag, and database model.
"""
from collections.abc import Callable, Sequence
from collections.abc import Sequence
from datetime import datetime
from typing import Any, NamedTuple, Protocol
@@ -28,13 +28,13 @@ class ExploreBannerQueryService:
self,
*,
banners: ExploreBannerQuery,
is_enabled: Callable[[], bool],
enabled: bool,
) -> None:
self._banners = banners
self._is_enabled = is_enabled
self._enabled = enabled
def list_for_language(self, language: str) -> tuple[ExploreBannerRecord, ...]:
if not self._is_enabled():
if not self._enabled:
return ()
banners = tuple(self._banners.list_enabled(language))
@@ -85,7 +85,7 @@ def _use_sqlite_banner_service(
) -> None:
service = ExploreBannerQueryService(
banners=ExploreBannerQueryRepository(sqlite_session_factory),
is_enabled=lambda: True,
enabled=True,
)
monkeypatch.setattr(
banner_module,
@@ -97,7 +97,7 @@ def _use_sqlite_banner_service(
class TestExploreBannerQueryService:
def test_returns_empty_without_querying_when_disabled(self) -> None:
banners = FakeExploreBannerQuery()
service = ExploreBannerQueryService(banners=banners, is_enabled=lambda: False)
service = ExploreBannerQueryService(banners=banners, enabled=False)
assert service.list_for_language("fr-FR") == ()
assert banners.requested_languages == []
@@ -105,7 +105,7 @@ class TestExploreBannerQueryService:
def test_returns_requested_language(self) -> None:
record = _record()
banners = FakeExploreBannerQuery({"fr-FR": (record,)})
service = ExploreBannerQueryService(banners=banners, is_enabled=lambda: True)
service = ExploreBannerQueryService(banners=banners, enabled=True)
assert service.list_for_language("fr-FR") == (record,)
assert banners.requested_languages == ["fr-FR"]
@@ -113,14 +113,14 @@ class TestExploreBannerQueryService:
def test_falls_back_to_en_us(self) -> None:
record = _record(title="fallback")
banners = FakeExploreBannerQuery({"en-US": (record,)})
service = ExploreBannerQueryService(banners=banners, is_enabled=lambda: True)
service = ExploreBannerQueryService(banners=banners, enabled=True)
assert service.list_for_language("es-ES") == (record,)
assert banners.requested_languages == ["es-ES", "en-US"]
def test_does_not_repeat_default_language_query(self) -> None:
banners = FakeExploreBannerQuery()
service = ExploreBannerQueryService(banners=banners, is_enabled=lambda: True)
service = ExploreBannerQueryService(banners=banners, enabled=True)
assert service.list_for_language("en-US") == ()
assert banners.requested_languages == ["en-US"]