mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-15 19:14:01 +08:00
43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
import app.application.image as image_service
|
|
from app.application.image import WallpaperHelper, configure_wallpaper_providers
|
|
|
|
|
|
def test_wallpaper_service_uses_startup_providers(monkeypatch):
|
|
"""壁纸服务通过组合根注入的 provider 访问业务 Chain。"""
|
|
provider_names = (
|
|
"_tmdb_wallpaper_provider",
|
|
"_tmdb_wallpaper_list_provider",
|
|
"_mediaserver_wallpaper_provider",
|
|
"_mediaserver_wallpaper_list_provider",
|
|
)
|
|
for provider_name in provider_names:
|
|
monkeypatch.setattr(
|
|
image_service,
|
|
provider_name,
|
|
getattr(image_service, provider_name),
|
|
)
|
|
cached_methods = (
|
|
WallpaperHelper.get_tmdb_wallpaper,
|
|
WallpaperHelper.get_tmdb_wallpapers,
|
|
WallpaperHelper.get_mediaserver_wallpaper,
|
|
WallpaperHelper.get_mediaserver_wallpapers,
|
|
)
|
|
for method in cached_methods:
|
|
method.cache_clear()
|
|
try:
|
|
configure_wallpaper_providers(
|
|
tmdb_wallpaper=lambda: "tmdb-one",
|
|
tmdb_wallpapers=lambda count: [f"tmdb-{count}"],
|
|
mediaserver_wallpaper=lambda: "server-one",
|
|
mediaserver_wallpapers=lambda count: [f"server-{count}"],
|
|
)
|
|
helper = WallpaperHelper()
|
|
|
|
assert helper.get_tmdb_wallpaper() == "tmdb-one"
|
|
assert helper.get_tmdb_wallpapers(3) == ["tmdb-3"]
|
|
assert helper.get_mediaserver_wallpaper() == "server-one"
|
|
assert helper.get_mediaserver_wallpapers(4) == ["server-4"]
|
|
finally:
|
|
for method in cached_methods:
|
|
method.cache_clear()
|