예제 #1
0
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"
예제 #2
0
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"
예제 #3
0
 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
예제 #4
0
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)
예제 #5
0
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")
예제 #6
0
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")
예제 #7
0
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")
예제 #8
0
def test_omdb_title__not_found():
    with pytest.raises(MnamerNotFoundException):
        omdb_title(Omdb.api_key, "1" * 2)
예제 #9
0
def test_omdb_title__id_imdb_fail():
    with pytest.raises(MnamerException):
        omdb_title(Omdb.api_key, "")
예제 #10
0
def test_omdb_title__api_key_fail():
    with pytest.raises(MnamerException):
        omdb_title(JUNK_TEXT, "", cache=False)
예제 #11
0
def test_omdb_title__invalid_plot():
    with pytest.raises(MnamerException):
        omdb_title(Omdb.api_key, title="uhf", plot="medium")