Esempio n. 1
0
 def _search_movie(
         self, name: str,
         year: Optional[int]) -> Generator[MetadataMovie, None, None]:
     assert self.api_key
     year_from, year_to = year_range_parse(year, 5)
     found = False
     page = 1
     page_max = 10  # each page yields a maximum of 10 results
     while True:
         try:
             response = omdb_search(
                 api_key=self.api_key,
                 media=MediaType.MOVIE.value,
                 query=name,
                 page=page,
                 cache=self.cache,
             )
         except MnamerNotFoundException:
             break
         for entry in response["Search"]:
             if year_from <= int(entry["Year"]) <= year_to:
                 yield from self._lookup_movie(entry["imdbID"])
                 found = True
         if page >= page_max:
             break
         page += 1
     if not found:
         raise MnamerNotFoundException
Esempio n. 2
0
def test_omdb_search__page_out_of_bounds():
    with pytest.raises(MnamerNotFoundException):
        omdb_search(Omdb.api_key, "Super Mario", page=100)
Esempio n. 3
0
def test_omdb_search__page_diff():
    p1 = omdb_search(Omdb.api_key, "Dogs", page=1)
    p2 = omdb_search(Omdb.api_key, "Dogs", page=2)
    assert p1 != p2
Esempio n. 4
0
def test_omdb_search__year():
    result = omdb_search(Omdb.api_key, "ninja turtles", year=1987)
    assert "tt0131613" == result["Search"][0]["imdbID"]
Esempio n. 5
0
def test_omdb_search__query__fail():
    with pytest.raises(MnamerNotFoundException):
        omdb_search(Omdb.api_key, JUNK_TEXT, cache=False)
Esempio n. 6
0
def test_omdb_search__api_key_fail():
    with pytest.raises(MnamerException):
        omdb_search(JUNK_TEXT, "ninja turtles", cache=False)
Esempio n. 7
0
def test_omdb_search__query__series():
    result = omdb_search(Omdb.api_key, "ninja turtles", media="series")
    assert all([entry["Type"] == "series" for entry in result["Search"]])
Esempio n. 8
0
def test_omdb_search__fields__search():
    expected_fields = {"Title", "Year", "imdbID", "Type", "Poster"}
    result = omdb_search(Omdb.api_key, "ninja turtles")["Search"][0]
    assert set(result.keys()) == expected_fields
Esempio n. 9
0
def test_omdb_search__fields__top_level():
    expected_fields = {"Search", "Response", "totalResults"}
    result = omdb_search(Omdb.api_key, "ninja turtles")
    assert set(result.keys()) == expected_fields