def test_tvdb_series_id__invalid_lang(tvdb_token): with pytest.raises(MnamerException): tvdb_series_id( tvdb_token, LOST_TVDB_ID_SERIES, language=Language(JUNK_TEXT, JUNK_TEXT, JUNK_TEXT), cache=False, )
def _search_id( self, id_tvdb: str, season: int = None, episode: int = None, language: Optional[Language] = None, ): found = False series_data = tvdb_series_id(self.token, id_tvdb, language=language, cache=self.cache) page = 1 while True: episode_data = tvdb_series_id_episodes_query( self.token, id_tvdb, episode, season, language=language, page=page, cache=self.cache, ) for entry in episode_data["data"]: try: yield MetadataEpisode( date=entry["firstAired"], episode=entry["airedEpisodeNumber"], id_tvdb=id_tvdb, season=entry["airedSeason"], series=series_data["data"]["seriesName"], language=language, synopsis=(entry["overview"] or None).replace("\r\n", "").replace(" ", "").strip(), title=entry["episodeName"].split(";", 1)[0], ) found = True except (AttributeError, KeyError, ValueError): continue if page == episode_data["links"]["last"]: break page += 1 if not found: raise MnamerNotFoundException
def test_tvdb_series_id__success(tvdb_token): expected_top_level_keys = { "added", "addedBy", "airsDayOfWeek", "airsTime", "aliases", "banner", "fanart", "firstAired", "genre", "id", "imdbId", "language", "lastUpdated", "network", "networkId", "overview", "poster", "rating", "runtime", "season", "seriesId", "seriesName", "siteRating", "siteRatingCount", "slug", "status", "zap2itId", } result = tvdb_series_id(tvdb_token, LOST_TVDB_ID_SERIES) assert isinstance(result, dict) assert "data" in result assert set(result["data"].keys()) == expected_top_level_keys assert result["data"]["id"] == LOST_TVDB_ID_SERIES assert result["data"]["seriesName"] == "Lost"
def test_tvdb_series_id__language(tvdb_token): result = tvdb_series_id(tvdb_token, THE_WITCHER_ID_SERIES, RUSSIAN_LANG) assert result["data"]["seriesName"] == "Ведьмак"
def test_tvdb_series_id__no_hits(tvdb_token): with pytest.raises(MnamerNotFoundException): tvdb_series_id(tvdb_token, LOST_TVDB_ID_SERIES * 2, cache=False)
def test_tvdb_series_id__invalid_id_imdb(tvdb_token): with pytest.raises(MnamerException): tvdb_series_id(tvdb_token, JUNK_TEXT, cache=False)
def test_tvdb_series_id__invalid_token(): with pytest.raises(MnamerException): tvdb_series_id(JUNK_TEXT, LOST_TVDB_ID_SERIES, cache=False)