def movie_details(movie_id): #random_cover = tmdb_client.get_random_cover(movie_id) details = tmdb_client.get_single_movie(movie_id) cast = tmdb_client.get_single_movie_cast(movie_id) movie_images = tmdb_client.get_movie_images(movie_id) selected_backdrop = random.choice(movie_images['backdrops']) return render_template("movie_details.html", movie=details, cast=cast, selected_backdrop=selected_backdrop)
def test_get_single_movie_cast(monkeypatch): mock_movie_cast = {'Id': 1, 'cast': [1, 2]} call_tmdb_api_mock = Mock() call_tmdb_api_mock.return_value = mock_movie_cast monkeypatch.setattr("tmdb_client.call_tmdb_api", call_tmdb_api_mock) movie_cast = tmdb_client.get_single_movie_cast(movie_id=1) return movie_cast == mock_movie_cast
def test_get_single_movie_cast(monkeypatch): mock_data = {'cast': [{'adult': False, 'gender': 2}]} api_mock = Mock(return_value=mock_data) monkeypatch.setattr("tmdb_client.call_tmdb_api", api_mock) api = tmdb_client.get_single_movie_cast(movie_id='movie_id') assert 'adult' and 'gender' in api[0] api == mock_data
def test_get_single_movie_cast(monkeypatch): mock_cast = "Robert P" mock_single_movie = {"cast": mock_cast} requests_mock = Mock() requests_mock.return_value.json.return_value = mock_single_movie monkeypatch.setattr("tmdb_client.requests.get", requests_mock) single_movie_cast = tmdb_client.get_single_movie_cast(movie_id="696374") return single_movie_cast == mock_single_movie
def test_get_single_movie_cast(monkeypatch): movie_cast_mock = {'cast': 'Ja'} requests_mock = Mock() response = requests_mock.return_value response.json.return_value = movie_cast_mock monkeypatch.setattr("tmdb_client.requests.get", requests_mock) movie = tmdb_client.get_single_movie_cast(movie_id=1, how_many=2) assert movie == movie_cast_mock['cast']
def test_get_single_movie_cast(monkeypatch): mock_single_movie_cast = {'cast': 'James Bond'} requests_mock = Mock() response = requests_mock.return_value response.json.return_value = mock_single_movie_cast monkeypatch.setattr("tmdb_client.requests.get", requests_mock) single_movie_cast = tmdb_client.get_single_movie_cast(movie_id=2) assert single_movie_cast == mock_single_movie_cast['cast']
def movie_details(movie_id: int): movie = tmdb_client.get_single_movie(movie_id) cast = tmdb_client.get_single_movie_cast(movie_id, 8) backdrop = tmdb_client.get_random_movie_backdrop(movie_id) if backdrop: movie['backdrop_path'] = backdrop return render_template("movie_details.html", movie=movie, cast=cast)
def movie_details(movie_id): details = tmdb_client.get_single_movie(movie_id) cast = tmdb_client.get_single_movie_cast(movie_id)[:8] images = tmdb_client.get_movie_images(movie_id) random_image = random.choice(images['backdrops']) return render_template("movie_details.html", movie=details, cast=cast, image=random_image)
def movie_details(movie_id): details = tmdb_client.get_single_movie(movie_id) cast = tmdb_client.get_single_movie_cast(movie_id, how_many=4) backdrops = tmdb_client.get_single_movie_images(movie_id) random.shuffle(backdrops['backdrops']) return render_template("movie_details.html", movie=details, cast=cast, backdrops=backdrops)
def movie_details(movie_id): details = tmdb_client.get_single_movie(movie_id) cast = tmdb_client.get_single_movie_cast(movie_id)[:12] movie_images = tmdb_client.get_movie_images(movie_id) selected_backdrop = random.choice(movie_images['backdrops'])['file_path'] return render_template("movie_details.html", movie=details, cast=cast, selected_backdrop=selected_backdrop)
def test_get_popular_movies(monkeypatch): mock_get_popular_movies = {"cast": ['aaa', 'bbb']} requests_mock = Mock() response = requests_mock.return_value response.json.return_value = mock_get_popular_movies monkeypatch.setattr("tmdb_client.requests.get", requests_mock) single_movie_cast = tmdb_client.get_single_movie_cast("popular") assert single_movie_cast is not None
def test_get_single_movie_cast(monkeypatch): mock_single_movie_cast = {} requests_mock = Mock() response = requests_mock.return_value response.json.return_value = mock_single_movie_cast monkeypatch.setattr("tmdb_client.requests.get", requests_mock) mock_movie_cast = tmdb_client.get_single_movie_cast(movie_id=000000) assert mock_movie_cast == mock_single_movie_cast
def movie_details(movie_id): movie = tc.get_single_movie(movie_id) cast = tc.get_single_movie_cast(movie_id)["cast"][:8] images = tc.get_single_movie_images(movie_id)["backdrops"] random_image = sample(images, 1) image_url = random_image[0]['file_path'] return render_template("movie_details.html", movie=movie, cast=cast, image_url=image_url)
def movie_details(movie_id): details = tmdb_client.get_single_movie(movie_id) backdrop_path = details["backdrop_path"] base_url_for_backdrop_path = "https://image.tmdb.org/t/p/w500/" ready_backdrop_path = f"{base_url_for_backdrop_path}{backdrop_path}" cast = tmdb_client.get_single_movie_cast(movie_id) return render_template("movie_details.html", movie=details, ready_backdrop_path=ready_backdrop_path, cast=cast)
def movie_details(movie_id): movie = tmdb_client.get_single_movie(movie_id) if request.method == "POST": if movie not in FAVORITES: FAVORITES.append(movie) flash(f"Dodano \"{movie['title']}\" do ulubionych!") else: flash(f"\"{movie['title']}\" już jest w ulubionych!") return redirect(url_for("homepage")) cast = tmdb_client.get_single_movie_cast(movie_id) return render_template("movie_details.html", movie=movie, cast=cast)
def test_get_single_movie_cast(monkeypatch): mock_cast = {"cast": "XYZ"} request_mock = Mock() response = request_mock.return_value response.json.return_value = mock_cast monkeypatch.setattr("tmdb_client.requests.get", request_mock) cast = tmdb_client.get_single_movie_cast(5) print(cast) print(mock_cast) assert cast == mock_cast["cast"]
def movie_details(movie_id): details = tmdb_client.get_single_movie(movie_id) cast_val = tmdb_client.get_single_movie_cast(movie_id) cast = cast_val["cast"] movie_images = tmdb_client.get_movie_images(movie_id) backdrop = random.choice(movie_images['backdrops']) link = backdrop["file_path"] selected_backdrop = f'https://image.tmdb.org/t/p/w780/{link}' return render_template("movie_details.html", movie=details, cast=cast, picture=selected_backdrop)
def test_get_single_movie_cast(monkeypatch): # Lista, którą będzie zwracać przysłonięte "zapytanie do API" mock_actor_details = ['cast_id', 'character', 'credit_id', 'gender'] requests_mock = Mock() # Wynik wywołania zapytania do API response = requests_mock.return_value # Przysłaniamy wynik wywołania metody .json() response.json.return_value = {'cast': mock_actor_details} monkeypatch.setattr("tmdb_client.requests.get", requests_mock) # Dla przykładu bierzemy movie_id 497, to jest "Zielona Mila" actor_details = tmdb_client.get_single_movie_cast(movie_id=497, number=10) assert actor_details == mock_actor_details
def test_get_single_movie_cast(monkeypatch): # Lista, którą będzie zwracać przysłonięte "zapytanie do API" mock_actor_details = ['cast_id', 'character', 'credit_id', 'gender'] requests_mock = Mock() # Wynik wywołania zapytania do API response = requests_mock.return_value # Przysłaniamy wynik wywołania metody .json() response.json.return_value = mock_actor_details monkeypatch.setattr("tmdb_client.requests.get", requests_mock) # Testujemy na movie_id=112 actor_details = tmdb_client.get_single_movie_cast(movie_id=100) assert actor_details == mock_actor_details
def test_get_single_movie_cast(monkeypatch): mock_cast = { 'id': 666, 'cast': [{ 'adult': False, 'gender': 1, 'id': 10055, 'known_for_department': 'Acting', 'name': 'Fernanda Montenegro', 'original_name': 'Fernanda Montenegro', 'popularity': 0.899, 'profile_path': '/bja0rn1BjAnA5Z5VbEvL2apvMT5.jpg', 'cast_id': 29, 'character': 'Isadora "Dora" Teixeira', 'credit_id': '52fe4267c3a36847f801bb41', 'order': 0 }, { 'adult': False, 'gender': 2, 'id': 10059, 'known_for_department': 'Acting', 'name': 'Vinícius de Oliveira', 'original_name': 'Vinícius de Oliveira', 'popularity': 1.015, 'profile_path': '/eDMbfBmAZoT24vTbv0ecpC2MRnH.jpg', 'cast_id': 31, 'character': 'Josué Fontenele de Paiva', 'credit_id': '52fe4267c3a36847f801bb49', 'order': 1 }, { 'adult': False, 'gender': 1, 'id': 10057, 'known_for_department': 'Acting', 'name': 'Marília Pêra', 'original_name': 'Marília Pêra', 'popularity': 1.133, 'profile_path': '/9gxyrjoTlBPjEp6SnISeFU4hVMs.jpg', 'cast_id': 30, 'character': 'Irene', 'credit_id': '52fe4267c3a36847f801bb45', 'order': 2 }, { 'adult': False, 'gender': 2, 'id': 10061, 'known_for_department': 'Acting', 'name': 'Othon Bastos', 'original_name': 'Othon Bastos', 'popularity': 1.693, 'profile_path': '/86uykdZHCr1Stzg0fmUeQwIlsnc.jpg', 'cast_id': 33, 'character': 'César', 'credit_id': '52fe4267c3a36847f801bb51', 'order': 3 }, { 'adult': False, 'gender': 2, 'id': 10062, 'known_for_department': 'Acting', 'name': 'Otávio Augusto', 'original_name': 'Otávio Augusto', 'popularity': 2.705, 'profile_path': '/b19b1hPh2IrAcvo1DAloVofHcq1.jpg', 'cast_id': 34, 'character': 'Pedrão', 'credit_id': '52fe4267c3a36847f801bb55', 'order': 4 }, { 'adult': False, 'gender': 2, 'id': 8600, 'known_for_department': 'Acting', 'name': 'Matheus Nachtergaele', 'original_name': 'Matheus Nachtergaele', 'popularity': 1.4, 'profile_path': '/c8w75b4TlLdXEnnpAgd4R22NDGY.jpg', 'cast_id': 36, 'character': 'Isaías Paiva', 'credit_id': '52fe4267c3a36847f801bb5d', 'order': 5 }, { 'adult': False, 'gender': 2, 'id': 52584, 'known_for_department': 'Acting', 'name': 'Caio Junqueira', 'original_name': 'Caio Junqueira', 'popularity': 0.6, 'profile_path': '/oO2ncA8EDcszRl4T3d82rPVRQ4w.jpg', 'cast_id': 50, 'character': 'Moisés Paiva', 'credit_id': '5785198ac3a3684f94005830', 'order': 6 }, { 'adult': False, 'gender': 1, 'id': 10063, 'known_for_department': 'Acting', 'name': 'Stela Freitas', 'original_name': 'Stela Freitas', 'popularity': 0.6, 'profile_path': '/wip6RvU9Up5zze4Tifwq8EIpdIw.jpg', 'cast_id': 35, 'character': 'Yolanda', 'credit_id': '52fe4267c3a36847f801bb59', 'order': 7 }, { 'adult': False, 'gender': 0, 'id': 55011, 'known_for_department': 'Acting', 'name': 'Maria Menezes', 'original_name': 'Maria Menezes', 'popularity': 1.38, 'profile_path': None, 'cast_id': 55, 'character': 'Waitress', 'credit_id': '57851bc192514137c20042cf', 'order': 8 }, { 'adult': False, 'gender': 2, 'id': 1337623, 'known_for_department': 'Acting', 'name': 'Sergio Kato', 'original_name': 'Sergio Kato', 'popularity': 1.286, 'profile_path': '/pL1S4OlYO9bHtE9xXrIwJIWooxh.jpg', 'cast_id': 58, 'character': "Dora's Client", 'credit_id': '57851ca4925141044a002852', 'order': 9 }, { 'adult': False, 'gender': 0, 'id': 10060, 'known_for_department': 'Acting', 'name': 'Soia Lira', 'original_name': 'Soia Lira', 'popularity': 0.6, 'profile_path': '/omMVXaJv8DgkdpAl1JLKLZ9QhE8.jpg', 'cast_id': 32, 'character': 'Ana Fontenele', 'credit_id': '52fe4267c3a36847f801bb4d', 'order': 10 }, { 'adult': False, 'gender': 0, 'id': 933139, 'known_for_department': 'Acting', 'name': 'Rita Assemany', 'original_name': 'Rita Assemany', 'popularity': 0.652, 'profile_path': '/Aqsplr60u1QubIK7JCpZqTMnNQA.jpg', 'cast_id': 51, 'character': "Jessé's Wife", 'credit_id': '57851a09c3a3685ae0004e99', 'order': 11 }, { 'adult': False, 'gender': 2, 'id': 55010, 'known_for_department': 'Acting', 'name': 'Harildo Deda', 'original_name': 'Harildo Deda', 'popularity': 0.6, 'profile_path': '/2hDKyomCoT2nrtmKnjhLBTR61lI.jpg', 'cast_id': 52, 'character': 'Bené', 'credit_id': '57851a71c3a36867910029d9', 'order': 12 }, { 'adult': False, 'gender': 0, 'id': 1511425, 'known_for_department': 'Acting', 'name': 'Gildásio Leite', 'original_name': 'Gildásio Leite', 'popularity': 0.6, 'profile_path': None, 'cast_id': 53, 'character': 'Man in the bus', 'credit_id': '57851ad892514137c2004265', 'order': 13 }, { 'adult': False, 'gender': 0, 'id': 1364415, 'known_for_department': 'Acting', 'name': 'Nanego Lira', 'original_name': 'Nanego Lira', 'popularity': 0.6, 'profile_path': '/qqjgCJgVFhkDHmnC7TYyFGzpZU4.jpg', 'cast_id': 54, 'character': 'Nordeste preacher', 'credit_id': '57851b13c3a36857d9005022', 'order': 14 }, { 'adult': False, 'gender': 2, 'id': 1331384, 'known_for_department': 'Art', 'name': 'José Pereira da Silva', 'original_name': 'José Pereira da Silva', 'popularity': 0.6, 'profile_path': None, 'cast_id': 56, 'character': "Dora's Client", 'credit_id': '57851c2dc3a3684ef7005d41', 'order': 15 }, { 'adult': False, 'gender': 0, 'id': 230171, 'known_for_department': 'Acting', 'name': 'Everaldo Pontes', 'original_name': 'Everaldo Pontes', 'popularity': 0.6, 'profile_path': '/jGYjtd1Iez626GzWBkULNpKhuHD.jpg', 'cast_id': 57, 'character': "Dora's Client", 'credit_id': '57851c51c3a36820130017fd', 'order': 16 }, { 'adult': False, 'gender': 0, 'id': 1415432, 'known_for_department': 'Acting', 'name': 'Inaldo Santana', 'original_name': 'Inaldo Santana', 'popularity': 0.6, 'profile_path': None, 'cast_id': 59, 'character': "Dora's Client in Nordeste", 'credit_id': '57851cdcc3a36857d900513b', 'order': 17 }, { 'adult': False, 'gender': 0, 'id': 1200357, 'known_for_department': 'Acting', 'name': 'Gideon Rosa', 'original_name': 'Gideon Rosa', 'popularity': 0.6, 'profile_path': None, 'cast_id': 60, 'character': 'Jessé', 'credit_id': '57851d50c3a3685ae0005094', 'order': 18 }, { 'adult': False, 'gender': 0, 'id': 2375801, 'known_for_department': 'Acting', 'name': 'Antonieta Noronha', 'original_name': 'Antonieta Noronha', 'popularity': 0.6, 'profile_path': '/tdfYsuKvj4VfNNosLRx8nE8FXEK.jpg', 'cast_id': 63, 'character': 'Violeta', 'credit_id': '5d42650f7719d7001162905e', 'order': 19 }] } requests_mock = Mock() requests_mock.return_value = mock_cast monkeypatch.setattr("tmdb_client.call_tmdb_api", requests_mock) assert tmdb_client.get_single_movie_cast(movie_id=666)
def movie_details(movie_id): movie = tmdb_client.get_single_movie(movie_id) movie['backdrop_path'] = tmdb_client.get_random_backdrop(movie_id) movie_cast = tmdb_client.get_single_movie_cast(movie_id) return render_template("movie_details.html", movie=movie, movie_cast=movie_cast)
def test_get_single_movie_cast(monkeypatch): mock_cast = ['cast'] call_tmdb_api(monkeypatch, mock_cast) cast = tmdb_client.get_single_movie_cast('531219') assert cast == mock_cast
def test_get_single_movie_cast(): mock_movie_cast = ['cast1', 'cast2'] cast = tmdb_client.get_single_movie_cast(100) assert type(cast) == type(mock_movie_cast)
def movie_details(movie_id): details = tmdb_client.get_single_movie(movie_id) cast = tmdb_client.get_single_movie_cast(movie_id)[:8] return render_template("movie_details.html", movie=details, cast=cast)
def test_get_single_movie_cast(monkeypatch): api_mock = Mock(return_value={'cast': ['Actor 1', 'Actor 2']}) movie_id = 10 monkeypatch.setattr("tmdb_client.call_tmdb_api", api_mock) get_movie_cast = tmdb_client.get_single_movie_cast(movie_id=movie_id) assert get_movie_cast is not None
def movie_full_cast(movie_id): details = tmdb_client.get_single_movie(movie_id) cast = tmdb_client.get_single_movie_cast(movie_id) return render_template("full_cast.html", movie=details, cast=cast)
def test_get_single_movie_cast(): movie = tmdb_client.get_single_movie_cast(547016) assert movie is not None