예제 #1
0
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,
        )
예제 #2
0
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"] == "Начало конца"
예제 #3
0
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
예제 #4
0
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
예제 #5
0
파일: providers.py 프로젝트: queeup/mnamer
 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
예제 #6
0
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,
        )
예제 #7
0
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)
예제 #8
0
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)
예제 #9
0
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)