mirror of
https://github.com/langgenius/dify.git
synced 2026-10-04 13:47:55 +08:00
refactor(api): snapshot explore banner feature flag (#40555)
This commit is contained in:
3 files changed
+10
-10
No files matched your search
@@ -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(
|
||||
|
||||
@@ -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"]
|
||||
|
||||
Reference in new issue
Block a user