import asyncio from src.server.api import anime as anime_module class FakeSerie: def __init__(self, key, name, folder, episodeDict=None): self.key = key self.name = name self.folder = folder self.episodeDict = episodeDict or {} class FakeSeriesApp: def __init__(self): self.List = self self._items = [ FakeSerie("1", "Test Show", "test_show", {1: [1, 2]}), FakeSerie("2", "Complete Show", "complete_show", {}), ] def GetMissingEpisode(self): return [s for s in self._items if s.episodeDict] def GetList(self): return self._items def ReScan(self, callback): callback() def test_list_anime_direct_call(): fake = FakeSeriesApp() result = asyncio.run(anime_module.list_anime(series_app=fake)) assert isinstance(result, list) assert any(item.title == "Test Show" for item in result) def test_get_anime_detail_direct_call(): fake = FakeSeriesApp() result = asyncio.run(anime_module.get_anime("1", series_app=fake)) assert result.title == "Test Show" assert "1-1" in result.episodes def test_rescan_direct_call(): fake = FakeSeriesApp() result = asyncio.run(anime_module.trigger_rescan(series_app=fake)) assert result["success"] is True