def test_tvdb_series_id_episodes_query__invalid_lang(tvdb_token): with pytest.raises(MnamerException): tvdb_series_id_episodes_query( tvdb_token, LOST_TVDB_ID_SERIES, language=Language(JUNK_TEXT, JUNK_TEXT, JUNK_TEXT), cache=False, )
def test_tvdb_series_id_episodes_query(tvdb_token): result = tvdb_series_id_episodes_query( tvdb_token, THE_WITCHER_ID_SERIES, season=1, episode=1, language=RUSSIAN_LANG, ) assert result["data"][0]["episodeName"] == "Начало конца"
def test_tvdb_series_id_episodes_query__success_id_tvdb(tvdb_token): result = tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES) assert isinstance(result, dict) assert "data" in result data = result["data"] assert len(data) == 100 actual_top_level_keys = set(data[0].keys()) assert actual_top_level_keys == EXPECTED_TOP_LEVEL_SHOW_KEYS assert data[0]["id"] == LOST_TVDB_ID_EPISODE
def test_tvdb_series_id_episodes_query__success_id_tvdb_season(tvdb_token): result = tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES, season=1) assert isinstance(result, dict) assert "data" in result data = result["data"] actual_top_level_keys = set(data[0].keys()) assert actual_top_level_keys == EXPECTED_TOP_LEVEL_SHOW_KEYS assert data[0]["id"] == LOST_TVDB_ID_EPISODE assert result["links"]["prev"] is None assert result["links"]["next"] is None
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_episodes_query__page_valid(tvdb_token): tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES, page=1) tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES, page=1, season=1) tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES, page=1, season=1, episode=1) with pytest.raises(MnamerNotFoundException): tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES, page=11, cache=False) with pytest.raises(MnamerNotFoundException): tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES, page=2, season=1, cache=False) with pytest.raises(MnamerNotFoundException): tvdb_series_id_episodes_query( tvdb_token, LOST_TVDB_ID_SERIES, page=2, season=1, episode=1, cache=False, )
def test_tvdb_series_id_episodes_query__invalid_id_tvdb(tvdb_token): with pytest.raises(MnamerException): tvdb_series_id_episodes_query(tvdb_token, JUNK_TEXT, cache=False)
def test_tvdb_series_id_episodes_query__invalid_token(): with pytest.raises(MnamerException): tvdb_series_id_episodes_query(JUNK_TEXT, LOST_TVDB_ID_SERIES, cache=False)
def test_tvdb_series_id_episodes_query__invalid_lang(tvdb_token): with pytest.raises(MnamerException): tvdb_series_id_episodes_query(tvdb_token, LOST_TVDB_ID_SERIES, lang="xyz", cache=False)