fix(imdb): handle null seasons response

This commit is contained in:
jxxghp
2026-09-19 17:38:36 +08:00
parent 77e72c05f0
commit fc0101a64e
2 changed files with 16 additions and 1 deletions

View File

@@ -508,7 +508,7 @@ class ImdbApi:
def _parse_seasons(cls, data: Optional[dict]) -> list[ImdbSeason]:
"""解析 GraphQL 季编号列表。"""
title = cls._first_title(data) or {}
values = title.get("episodes", {}).get("seasons") or []
values = (title.get("episodes") or {}).get("seasons") or []
return [ImdbSeason(season=str(item["number"])) for item in values]
@classmethod

View File

@@ -242,6 +242,21 @@ def test_imdb_episode_parser_accepts_null_optional_objects() -> None:
assert episodes[0].plot is None
def test_imdb_season_parser_accepts_null_episodes() -> None:
"""季列表 GraphQL 的 episodes 为 null 时应按空列表处理。"""
seasons = ImdbApi._parse_seasons(
{
"titles": [
{
"episodes": None,
}
]
}
)
assert seasons == []
def test_imdb_clear_cache_registers_async_cleanup_in_running_loop() -> None:
"""同步清缓存入口在异步宿主中应登记任务,并保留原同步调用约定。"""