def test_omdb_title__media__movie(): expected_top_level_keys = { "Actors", "Awards", "BoxOffice", "Country", "Director", "DVD", "Genre", "imdbID", "imdbRating", "imdbVotes", "Language", "Metascore", "Plot", "Poster", "Production", "Rated", "Ratings", "Released", "Response", "Runtime", "Title", "Type", "Website", "Writer", "Year", } result = omdb_title(Omdb.api_key, media="movie", title="ninja turtles") assert expected_top_level_keys == set(result.keys()) assert result["Response"] assert result["Type"] == "movie" assert result["Title"] == "Teenage Mutant Ninja Turtles"
def test_omdb_title__media__series(): expected_top_level_keys = { "Actors", "Awards", "Country", "Director", "Genre", "imdbID", "imdbRating", "imdbVotes", "Language", "Metascore", "Plot", "Poster", "Rated", "Ratings", "Released", "Response", "Runtime", "Title", "totalSeasons", "Type", "Writer", "Year", } result = omdb_title(Omdb.api_key, media="series", title="ninja turtles") assert set(result.keys()) == expected_top_level_keys assert result["Response"] assert result["Type"] == "series" assert result["Title"] == "Teenage Mutant Ninja Turtles"
def _lookup_movie(self, id_imdb: str) -> Iterator[MetadataMovie]: assert self.api_key response = omdb_title(self.api_key, id_imdb, cache=self.cache) try: release_date = dt.datetime.strptime( response["Released"], "%d %b %Y").strftime("%Y-%m-%d") except (KeyError, ValueError): if response.get("Year") in (None, "N/A"): release_date = None else: release_date = "{}-01-01".format(response["Year"]) meta = MetadataMovie( name=response["Title"], year=release_date, synopsis=response["Plot"], id_imdb=response["imdbID"], ) if meta.synopsis == "N/A": meta.synopsis = None yield meta
def test_omdb_title__title_id_xnor__neither(mock_request): mock_response = MockRequestResponse(200, '{"key":"value"}') mock_request.return_value = mock_response with pytest.raises(MnamerException): omdb_title(Omdb.api_key)
def test_omdb_title__title_id_xnor__both(mock_request): mock_response = MockRequestResponse(200, '{"key":"value"}') mock_request.return_value = mock_response with pytest.raises(MnamerException): omdb_title(Omdb.api_key, title="some title", id_imdb="tt123")
def test_omdb_title__title_id_xnor__id(mock_request): mock_response = MockRequestResponse(200, '{"key":"value"}') mock_request.return_value = mock_response omdb_title(Omdb.api_key, id_imdb="tt123")
def test_omdb_title__title_id_xnor__title(mock_request): mock_response = MockRequestResponse(200, '{"key":"value"}') mock_request.return_value = mock_response omdb_title(Omdb.api_key, title="some title")
def test_omdb_title__not_found(): with pytest.raises(MnamerNotFoundException): omdb_title(Omdb.api_key, "1" * 2)
def test_omdb_title__id_imdb_fail(): with pytest.raises(MnamerException): omdb_title(Omdb.api_key, "")
def test_omdb_title__api_key_fail(): with pytest.raises(MnamerException): omdb_title(JUNK_TEXT, "", cache=False)
def test_omdb_title__invalid_plot(): with pytest.raises(MnamerException): omdb_title(Omdb.api_key, title="uhf", plot="medium")