feat(api): add anime API endpoints and tests; update docs
This commit is contained in:
74
tests/api/test_anime_endpoints.py
Normal file
74
tests/api/test_anime_endpoints.py
Normal file
@@ -0,0 +1,74 @@
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from src.server.fastapi_app import app
|
||||
|
||||
|
||||
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):
|
||||
# simulate rescan
|
||||
callback()
|
||||
|
||||
|
||||
def test_list_anime_override_dependency(monkeypatch):
|
||||
fake = FakeSeriesApp()
|
||||
|
||||
def _get_series_app():
|
||||
return fake
|
||||
|
||||
app.dependency_overrides = {"src.server.utils.dependencies.get_series_app": _get_series_app}
|
||||
client = TestClient(app)
|
||||
|
||||
resp = client.get("/api/v1/anime/")
|
||||
assert resp.status_code == 200
|
||||
data = resp.json()
|
||||
assert isinstance(data, list)
|
||||
assert any(item["title"] == "Test Show" for item in data)
|
||||
|
||||
|
||||
def test_get_anime_detail(monkeypatch):
|
||||
fake = FakeSeriesApp()
|
||||
|
||||
def _get_series_app():
|
||||
return fake
|
||||
|
||||
app.dependency_overrides = {"src.server.utils.dependencies.get_series_app": _get_series_app}
|
||||
client = TestClient(app)
|
||||
|
||||
resp = client.get("/api/v1/anime/1")
|
||||
assert resp.status_code == 200
|
||||
data = resp.json()
|
||||
assert data["title"] == "Test Show"
|
||||
assert "1-1" in data["episodes"]
|
||||
|
||||
|
||||
def test_rescan(monkeypatch):
|
||||
fake = FakeSeriesApp()
|
||||
|
||||
def _get_series_app():
|
||||
return fake
|
||||
|
||||
app.dependency_overrides = {"src.server.utils.dependencies.get_series_app": _get_series_app}
|
||||
client = TestClient(app)
|
||||
|
||||
resp = client.post("/api/v1/anime/rescan")
|
||||
assert resp.status_code == 200
|
||||
data = resp.json()
|
||||
assert data["success"] is True
|
||||
Reference in New Issue
Block a user