def test_tvdb_search_series__invalid_lang(tvdb_token): with pytest.raises(MnamerException): tvdb_search_series( tvdb_token, "Lost", language=Language(JUNK_TEXT, JUNK_TEXT, JUNK_TEXT), cache=False, )
def _search_series( self, series: str, season: int, episode: int, language: Optional[Language], ): found = False series_data = tvdb_search_series(self.token, series, language=language, cache=self.cache) for series_id in [entry["id"] for entry in series_data["data"][:5]]: try: for data in self._search_id(series_id, season, episode, language): if not data.series or not data.season: continue found = True yield data except MnamerNotFoundException: continue # may not have requested episode or may be banned if not found: raise MnamerNotFoundException
def _search_series_date(self, series: str, release_date: date, language: Optional[Language]): release_date = parse_date(release_date) series_data = tvdb_search_series(self.token, series, language=language, cache=self.cache) tvdb_ids = [entry["id"] for entry in series_data["data"]][:5] found = False for tvdb_id in tvdb_ids: try: yield from self._search_tvdb_date(tvdb_id, release_date, language) found = True except MnamerNotFoundException: continue if not found: raise MnamerNotFoundException
def test_tvdb_search_series__success(tvdb_token): expected_top_level_keys = { "aliases", "banner", "firstAired", "id", "image", "network", "overview", "poster", "seriesName", "slug", "status", } result = tvdb_search_series(tvdb_token, "Lost") 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_keys
def test_tvdb_search_series__language(tvdb_token): results = tvdb_search_series(tvdb_token, "Witcher", language=RUSSIAN_LANG) assert any(result["seriesName"] for result in results["data"])
def test_tvdb_search_series__invalid_id_imdb(tvdb_token): with pytest.raises(MnamerException): tvdb_search_series(tvdb_token, "Lost", id_imdb="xyz", cache=False)
def test_tvdb_search_series__invalid_token(): with pytest.raises(MnamerException): tvdb_search_series(JUNK_TEXT, "Lost", cache=False)