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