def test_tvmaze_show_search__success(): results = tvmaze_show_search(META["series"]) expected_top_level_keys = {"score", "show"} assert results result = results[0] assert expected_top_level_keys == set(result) for expected_show_key in EXPECTED_SHOW_KEYS: assert expected_show_key in result["show"] assert result["show"]["id"] == META["id_tvmaze"] assert result["show"]["name"] == META["series"]
def _search(self, series: str, season: Optional[int], episode: Optional[int]) -> Iterator[MetadataEpisode]: assert series series_data = tvmaze_show_search(series) for idx, series_entry in enumerate(series_data): if idx >= 3: break series_entry = series_entry["show"] id_tvmaze = series_entry["id"] episode_data = tvmaze_show_episodes_list(id_tvmaze) for episode_entry in episode_data: id_tvdb = series_entry["externals"]["thetvdb"] meta = self._transform_meta(id_tvmaze, id_tvdb, series_entry, episode_entry) if season is not None and season != meta.season: continue if episode is not None and episode != meta.episode: continue yield meta
def _search_with_season_and_episode( self, series: str, season: Optional[int], episode: Optional[int]) -> Generator[MetadataEpisode, None, None]: assert season series_data = tvmaze_show_search(series) for idx, series_entry in enumerate(series_data): if idx >= 3: break series_entry = series_entry["show"] id_tvmaze = series_entry["id"] try: episode_entry = tvmaze_episode_by_number( id_tvmaze, season, episode) except MnamerNotFoundException: continue meta = self._transform_meta(id_tvmaze, None, series_entry, episode_entry) if season is not None and season != meta.season: continue if episode is not None and episode != meta.episode: continue yield meta
def test_tvmaze_show_search__no_hits(): with pytest.raises(MnamerNotFoundException): tvmaze_show_search(JUNK_TEXT)