Aniworld/tests/unit/test_anime_models.py

110 lines
2.5 KiB
Python

from pydantic import ValidationError
from src.server.models.anime import (
AnimeSeriesResponse,
EpisodeInfo,
MissingEpisodeInfo,
SearchRequest,
SearchResult,
)
def test_episode_info_basic():
ep = EpisodeInfo(episode_number=1, title="Pilot", duration_seconds=1500)
assert ep.episode_number == 1
assert ep.title == "Pilot"
assert ep.duration_seconds == 1500
assert ep.available is True
def test_missing_episode_count():
m = MissingEpisodeInfo(from_episode=5, to_episode=7)
assert m.count == 3
def test_anime_series_response():
ep = EpisodeInfo(episode_number=1, title="Ep1")
series = AnimeSeriesResponse(
id="series-123",
title="My Anime",
episodes=[ep],
total_episodes=12,
)
assert series.id == "series-123"
assert series.episodes[0].title == "Ep1"
def test_search_request_validation():
# valid
req = SearchRequest(query="naruto", limit=5)
assert req.query == "naruto"
# invalid: empty query
try:
SearchRequest(query="", limit=5)
raised = False
except ValidationError:
raised = True
assert raised
def test_search_result_optional_fields():
res = SearchResult(id="s1", title="T1", snippet="snip", score=0.9)
assert res.score == 0.9
from pydantic import ValidationError
from src.server.models.anime import (
AnimeSeriesResponse,
EpisodeInfo,
MissingEpisodeInfo,
SearchRequest,
SearchResult,
)
def test_episode_info_basic():
ep = EpisodeInfo(episode_number=1, title="Pilot", duration_seconds=1500)
assert ep.episode_number == 1
assert ep.title == "Pilot"
assert ep.duration_seconds == 1500
assert ep.available is True
def test_missing_episode_count():
m = MissingEpisodeInfo(from_episode=5, to_episode=7)
assert m.count == 3
def test_anime_series_response():
ep = EpisodeInfo(episode_number=1, title="Ep1")
series = AnimeSeriesResponse(
id="series-123",
title="My Anime",
episodes=[ep],
total_episodes=12,
)
assert series.id == "series-123"
assert series.episodes[0].title == "Ep1"
def test_search_request_validation():
# valid
req = SearchRequest(query="naruto", limit=5)
assert req.query == "naruto"
# invalid: empty query
try:
SearchRequest(query="", limit=5)
raised = False
except ValidationError:
raised = True
assert raised
def test_search_result_optional_fields():
res = SearchResult(id="s1", title="T1", snippet="snip", score=0.9)
assert res.score == 0.9