50 lines
1.3 KiB
Python
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
|