Aniworld/tests/api/test_anime_endpoints.py

50 lines
1.3 KiB
Python

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