예제 #1
0
def test_search_series_and_season_and_episode(meta: dict, provider: TvMaze):
    query = MetadataEpisode(series=meta["series"],
                            season=meta["season"],
                            episode=meta["episode"])
    results = list(provider.search(query))
    assert results
    assert any(result.title == meta["title"] for result in results)
예제 #2
0
def test_search_id_tvmaze_and_episode(meta: dict, provider: TvMaze):
    query = MetadataEpisode(id_tvmaze=meta["id_tvmaze"],
                            episode=meta["episode"])
    results = list(provider.search(query))
    assert results
    assert any(result.title == meta["title"] for result in results)
    assert all(result.episode == meta["episode"] for result in results)
예제 #3
0
def test_tvdb_provider__search__id_tvdb_season_episode(meta: dict,
                                                       provider: Tvdb):
    query = MetadataEpisode(season=1, episode=3, id_tvdb=meta["id_tvdb"])
    results = list(provider.search(query))
    assert len(results) == 1
    assert results[0].season == 1
    assert results[0].episode == 3
예제 #4
0
def test_search_id_tvmaze_and_season_and_episode(meta: dict, provider: TvMaze):
    query = MetadataEpisode(id_tvmaze=meta["id_tvmaze"],
                            season=meta["season"],
                            episode=meta["episode"])
    results = list(provider.search(query))
    assert results
    for result in results:
        assert result.title == meta["title"]
예제 #5
0
def test_tvdb_provider__search__series(meta: dict, provider: Tvdb):
    query = MetadataEpisode(series=meta["series"])
    found = False
    results = provider.search(query)
    for result in results:
        if result.id_tvdb == meta["id_tvdb"]:
            found = True
            break
    assert found is True
예제 #6
0
 def _transform_meta(id_tvmaze: str, id_tvdb: Optional[str],
                     series_entry: dict,
                     episode_entry: dict) -> MetadataEpisode:
     return MetadataEpisode(
         date=episode_entry["airdate"] or None,
         episode=episode_entry["number"],
         id_tvdb=id_tvdb or None,
         id_tvmaze=id_tvmaze or None,
         season=episode_entry["season"],
         series=series_entry["name"],
         synopsis=episode_entry["summary"] or None,
         title=episode_entry["name"] or None,
     )
예제 #7
0
 def _search_id(
     self,
     id_tvdb: int,
     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
예제 #8
0
def test_search_series_and_episode__no_hits(provider: TvMaze):
    query = MetadataEpisode(series=JUNK_TEXT, episode=1)
    with pytest.raises(MnamerNotFoundException):
        next(provider.search(query))
예제 #9
0
def test_search_id_tvdb(meta: dict, provider: TvMaze):
    query = MetadataEpisode(id_tvdb=meta["id_tvdb"])
    results = list(provider.search(query))
    assert results
    assert any(result.title == meta["title"] for result in results)
예제 #10
0
def test_tvdb_provider__search_series_date__year(provider: Tvdb):
    query = MetadataEpisode(series="The Daily Show", date="2017-11-01")
    results = list(provider.search(query))
    assert len(results) == 1
    assert results[0].title == "Hillary Clinton"
예제 #11
0
def test_tvdb_provider__search__series_deep(provider: Tvdb):
    query = MetadataEpisode(series="House Rules (au)", season=6, episode=6)
    results = provider.search(query)
    assert any(result.id_tvdb == 269795 for result in results)
예제 #12
0
def test_search__id_tvdb_episode(meta: dict, provider: Tvdb):
    query = MetadataEpisode(episode=2, id_tvdb=meta["id_tvdb"])
    results = provider.search(query)
    all_episode_2 = all(entry.episode == 2 for entry in results)
    assert all_episode_2 is True
예제 #13
0
def test_search__id_tvdb_season(meta: dict, provider: Tvdb):
    query = MetadataEpisode(season=1, id_tvdb=meta["id_tvdb"])
    results = provider.search(query)
    all_season_1 = all(entry.season == 1 for entry in results)
    assert all_season_1 is True
예제 #14
0
def test_search__series(meta: dict, provider: Tvdb):
    query = MetadataEpisode(series=meta["series"])
    assert any(result.id_tvdb == meta["id_tvdb"] for result in provider.search(query))
예제 #15
0
def test_search_id(meta: dict, provider: Tvdb):
    query = MetadataEpisode(id_tvdb=meta["id_tvdb"])
    results = list(provider.search(query))
    assert results
    for result in results:
        assert result.series == meta["series"]
예제 #16
0
def test_search_id_tvdb_and_date(meta, provider: TvMaze):
    query = MetadataEpisode(id_tvdb=meta["id_tvdb"], date=meta["date"])
    results = list(provider.search(query))
    assert results
    for result in results:
        assert result.title == meta["title"]
예제 #17
0
def test_search_id_tvdb_and_date__no_hits(provider: TvMaze):
    query = MetadataEpisode(id_tvdb=JUNK_TEXT, date=TEST_DATE)
    with pytest.raises(MnamerNotFoundException):
        next(provider.search(query))
예제 #18
0
def test_tvdb_provider__search__title_season(meta: dict, provider: Tvdb):
    query = MetadataEpisode(series=meta["series"], season=1)
    results = provider.search(query)
    all_season_1 = all(entry.season == 1 for entry in results)
    assert all_season_1 is True
예제 #19
0
def test_search_id_tvmaze__no_hits(provider: TvMaze):
    query = MetadataEpisode(id_tvmaze=JUNK_TEXT)
    with pytest.raises(MnamerNotFoundException):
        next(provider.search(query))
예제 #20
0
def test_tvdb_provider__search__title_season_episode(meta: dict, provider: Tvdb):
    query = MetadataEpisode(series=meta["series"], season=1, episode=3)
    results = list(provider.search(query))
    assert results[0].season == 1
    assert results[0].episode == 3