From 79f4cd39c58f5c3ea2b28c58117408dd79e962e7 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Sun, 25 Sep 2022 16:12:37 -0400 Subject: [PATCH 01/13] Part 2 and 3 --- play_tester.py | 7 +-- tests/test_wave_01.py | 24 +++++---- tests/test_wave_02.py | 8 +-- tests/test_wave_03.py | 10 ++-- viewing_party/party.py | 118 +++++++++++++++++++++++++++++++++++++++-- 5 files changed, 141 insertions(+), 26 deletions(-) diff --git a/play_tester.py b/play_tester.py index 9e2aecf48..596a4a5ab 100644 --- a/play_tester.py +++ b/play_tester.py @@ -10,9 +10,10 @@ # play testing section print("\n-----Wave 01 test data-----") -pp.pprint(HORROR_1) -pp.pprint(FANTASY_1) -pp.pprint(FANTASY_2) +print(create_movie(MOVIE_TITLE_1,GENRE_1,RATING_1)) +# pp.pprint(HORROR_1) +# pp.pprint(FANTASY_1) +# pp.pprint(FANTASY_2) # print("\n-----Wave 02 user_data-----") # pp.pprint(clean_wave_2_data()) diff --git a/tests/test_wave_01.py b/tests/test_wave_01.py index 6be6994a5..164cf97bc 100644 --- a/tests/test_wave_01.py +++ b/tests/test_wave_01.py @@ -4,7 +4,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_successful_movie(): # Arrange movie_title = MOVIE_TITLE_1 @@ -19,7 +19,7 @@ def test_create_successful_movie(): assert new_movie["genre"] == GENRE_1 assert new_movie["rating"] == pytest.approx(RATING_1) -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_title_movie(): # Arrange movie_title = None @@ -32,7 +32,7 @@ def test_create_no_title_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_genre_movie(): # Arrange movie_title = "Title A" @@ -45,7 +45,7 @@ def test_create_no_genre_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_create_no_rating_movie(): # Arrange movie_title = "Title A" @@ -58,7 +58,7 @@ def test_create_no_rating_movie(): # Assert assert new_movie is None -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_user_watched(): # Arrange movie = { @@ -79,7 +79,7 @@ def test_adds_movie_to_user_watched(): assert updated_data["watched"][0]["genre"] == GENRE_1 assert updated_data["watched"][0]["rating"] == RATING_1 -@pytest.mark.skip() +# @pytest.mark.skip() def test_adds_movie_to_user_watchlist(): # Arrange movie = { @@ -100,7 +100,7 @@ def test_adds_movie_to_user_watchlist(): assert updated_data["watchlist"][0]["genre"] == GENRE_1 assert updated_data["watchlist"][0]["rating"] == RATING_1 -@pytest.mark.skip() +# @pytest.mark.skip() def test_moves_movie_from_watchlist_to_empty_watched(): # Arrange janes_data = { @@ -119,12 +119,13 @@ def test_moves_movie_from_watchlist_to_empty_watched(): assert len(updated_data["watchlist"]) == 0 assert len(updated_data["watched"]) == 1 - raise Exception("Test needs to be completed.") + # raise Exception("Test needs to be completed.") + assert MOVIE_TITLE_1 == updated_data["watched"][0]["title"] # ******************************************************************************************* # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_moves_movie_from_watchlist_to_watched(): # Arrange movie_to_watch = HORROR_1 @@ -143,12 +144,13 @@ def test_moves_movie_from_watchlist_to_watched(): assert len(updated_data["watchlist"]) == 1 assert len(updated_data["watched"]) == 2 - raise Exception("Test needs to be completed.") + # raise Exception("Test needs to be completed.") + assert updated_data["watched"] == [FANTASY_2,HORROR_1] # ******************************************************************************************* # ****** Add assertions here to test that the correct movie was added to "watched" ********** # ******************************************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_does_nothing_if_movie_not_in_watchlist(): # Arrange movie_to_watch = HORROR_1 diff --git a/tests/test_wave_02.py b/tests/test_wave_02.py index 3a588299e..198e395b3 100644 --- a/tests/test_wave_02.py +++ b/tests/test_wave_02.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_calculates_watched_average_rating(): # Arrange janes_data = clean_wave_2_data() @@ -14,7 +14,7 @@ def test_calculates_watched_average_rating(): assert average == pytest.approx(3.58333) assert janes_data == clean_wave_2_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_empty_watched_average_rating_is_zero(): # Arrange janes_data = { @@ -27,7 +27,7 @@ def test_empty_watched_average_rating_is_zero(): # Assert assert average == pytest.approx(0.0) -@pytest.mark.skip() +# @pytest.mark.skip() def test_most_watched_genre(): # Arrange janes_data = clean_wave_2_data() @@ -39,7 +39,7 @@ def test_most_watched_genre(): assert popular_genre == "Fantasy" assert janes_data == clean_wave_2_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_genre_is_None_if_empty_watched(): # Arrange janes_data = { diff --git a/tests/test_wave_03.py b/tests/test_wave_03.py index 046429360..0aa062f34 100644 --- a/tests/test_wave_03.py +++ b/tests/test_wave_03.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_my_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -16,7 +16,7 @@ def test_my_unique_movies(): assert INTRIGUE_2 in amandas_unique_movies assert amandas_data == clean_wave_3_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_my_not_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -28,7 +28,7 @@ def test_my_not_unique_movies(): # Assert assert len(amandas_unique_movies) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_friends_unique_movies(): # Arrange amandas_data = clean_wave_3_data() @@ -43,7 +43,7 @@ def test_friends_unique_movies(): assert FANTASY_4 in friends_unique_movies assert amandas_data == clean_wave_3_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_friends_unique_movies_not_duplicated(): # Arrange amandas_data = clean_wave_3_data() @@ -60,7 +60,7 @@ def test_friends_unique_movies_not_duplicated(): # ****** Add assertions here to test that the correct movies are in friends_unique_movies ********** # ************************************************************************************************** -@pytest.mark.skip() +# @pytest.mark.skip() def test_friends_not_unique_movies(): # Arrange amandas_data = { diff --git a/viewing_party/party.py b/viewing_party/party.py index 6d34a6b5f..a43c7630b 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -1,23 +1,135 @@ -# ------------- WAVE 1 -------------------- +from pprint import pprint +#HELPER FUNCTION +def _get_movies_watched_by_friends(user_data): + movies_watched_by_friends = [] + + for friend in user_data["friends"]: + for friend_movie in friend["watched"]: + movies_watched_by_friends.append(friend_movie) + return movies_watched_by_friends + +# ------------- WAVE 1 -------------------- def create_movie(title, genre, rating): - pass + if not title or not genre or not rating: + return None + + return {"title":title, "genre":genre, "rating":rating} + + +def add_to_watched(user_data, movie): + user_data["watched"].append(movie) + return user_data + +def add_to_watchlist(user_data, movie): + user_data["watchlist"].append(movie) + return user_data + + +def watch_movie(user_data, title): + for movie in user_data["watchlist"]: + watchlist_title = movie["title"] + if title == watchlist_title: + user_data["watchlist"].remove(movie) + user_data["watched"].append(movie) + return user_data + + return user_data +# Note: For Waves 2, 3, 4, and 5, your implementation of each of the functions should not modify user_data. # ----------------------------------------- # ------------- WAVE 2 -------------------- # ----------------------------------------- +def get_watched_avg_rating(user_data): + rating = 0 + num_of_movies = len(user_data["watched"]) + + for movie in user_data["watched"]: + rating += movie["rating"] + + if rating == 0: + return 0 + else: + average_rating = rating/num_of_movies + return average_rating + + + +def get_most_watched_genre(user_data): + favorite_genre = "" + genre_list = [] + genre = "" + # If the value of "watched" is an empty list, get_most_watched_genre should return None. + if user_data["watched"] == []: + return None + + for movie in user_data["watched"]: #this giving each movie dictionary inside the watched list + genre = movie['genre'] #accessing the movie genre and assigning to the genre + genre_list.append(genre) #each genre will be added to the genre_list # the congregate of all genres + + + favorite_genre = max(set(genre_list), key= genre_list.count) #inside this loop give me the max count of each genre + return favorite_genre + # ----------------------------------------- # ------------- WAVE 3 -------------------- # ----------------------------------------- +def get_unique_watched(user_data): + user_not_watched_movies = [] + movies_watched_by_friends = [] + + for friend in user_data["friends"]: + for friend_movie in friend["watched"]: + movies_watched_by_friends.append(friend_movie) + + for movie in user_data["watched"]: + user_watched_movie = movie + + if user_watched_movie not in movies_watched_by_friends: + user_not_watched_movies.append(user_watched_movie) + return user_not_watched_movies + + +def get_friends_unique_watched(user_data): + recommended_movies = [] + + movies_watched_by_friends = [] + movies_watched_by_friends = _get_movies_watched_by_friends(user_data) + user_watched_movies = user_data["watched"] + pprint(movies_watched_by_friends) + + for friend_movie in movies_watched_by_friends: + #now we have {movie} + for user_movie in user_watched_movies: + if user_movie not in movies_watched_by_friends: + recommended_movies.append(user_movie) + + # pprint(recommended_movies) + return recommended_movies + + - # ----------------------------------------- # ------------- WAVE 4 -------------------- # ----------------------------------------- +def get_available_recs(user_data): + pass +# user_data["subscriptions"] +# user_data["friends"]["host"] + +# Determine a list of recommended movies. A movie should be added to this list if and only if: +# The user has not watched it +# At least one of the user's friends has watched +# The "host" of the movie is a service that is in the user's "subscriptions" +# Return the list of recommended movies + + # ----------------------------------------- # ------------- WAVE 5 -------------------- # ----------------------------------------- +def get_new_rec_by_genre(user_data): + pass \ No newline at end of file From f022a24b5064a4bc29cf2914be12b24b968daa7c Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Sun, 25 Sep 2022 16:58:20 -0400 Subject: [PATCH 02/13] finish part 3 --- viewing_party/party.py | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index a43c7630b..8ce529b0d 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -3,9 +3,12 @@ def _get_movies_watched_by_friends(user_data): movies_watched_by_friends = [] - for friend in user_data["friends"]: - for friend_movie in friend["watched"]: - movies_watched_by_friends.append(friend_movie) + for friend in user_data["friends"]: #[{}] + for friend_movie in friend["watched"]: #{} + if friend_movie in movies_watched_by_friends: + continue + else: + movies_watched_by_friends.append(friend_movie) return movies_watched_by_friends @@ -78,17 +81,11 @@ def get_most_watched_genre(user_data): # ----------------------------------------- def get_unique_watched(user_data): user_not_watched_movies = [] - movies_watched_by_friends = [] - - for friend in user_data["friends"]: - for friend_movie in friend["watched"]: - movies_watched_by_friends.append(friend_movie) + movies_watched_by_friends = _get_movies_watched_by_friends(user_data) for movie in user_data["watched"]: - user_watched_movie = movie - - if user_watched_movie not in movies_watched_by_friends: - user_not_watched_movies.append(user_watched_movie) + if movie not in movies_watched_by_friends: + user_not_watched_movies.append(movie) return user_not_watched_movies @@ -98,18 +95,14 @@ def get_friends_unique_watched(user_data): movies_watched_by_friends = [] movies_watched_by_friends = _get_movies_watched_by_friends(user_data) user_watched_movies = user_data["watched"] - pprint(movies_watched_by_friends) - for friend_movie in movies_watched_by_friends: - #now we have {movie} - for user_movie in user_watched_movies: - if user_movie not in movies_watched_by_friends: - recommended_movies.append(user_movie) + for friend_movie in movies_watched_by_friends: #user_data = "friends": [{}] + if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends + recommended_movies.append(friend_movie) # pprint(recommended_movies) return recommended_movies - # ----------------------------------------- # ------------- WAVE 4 -------------------- From df751a64c0643814753e5df587e471bd3fc91508 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Sun, 25 Sep 2022 18:30:11 -0400 Subject: [PATCH 03/13] finished wv 3 --- tests/test_wave_03.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/test_wave_03.py b/tests/test_wave_03.py index 0aa062f34..2f9726d0c 100644 --- a/tests/test_wave_03.py +++ b/tests/test_wave_03.py @@ -55,7 +55,9 @@ def test_friends_unique_movies_not_duplicated(): # Assert assert len(friends_unique_movies) == 3 - raise Exception("Test needs to be completed.") + for movie in friends_unique_movies: + assert movie in [HORROR_1, FANTASY_4, INTRIGUE_3] + # raise Exception("Test needs to be completed.") # ************************************************************************************************* # ****** Add assertions here to test that the correct movies are in friends_unique_movies ********** # ************************************************************************************************** From bc3ccd53b92c085d64070b7c7a5870592ae24047 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Sun, 25 Sep 2022 23:42:41 -0400 Subject: [PATCH 04/13] wv 4 pending --- tests/test_wave_04.py | 2 +- viewing_party/party.py | 49 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/tests/test_wave_04.py b/tests/test_wave_04.py index 499669077..7524dc3d5 100644 --- a/tests/test_wave_04.py +++ b/tests/test_wave_04.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_get_available_friend_rec(): # Arrange amandas_data = clean_wave_4_data() diff --git a/viewing_party/party.py b/viewing_party/party.py index 8ce529b0d..112795d93 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -1,4 +1,6 @@ -from pprint import pprint +from pprint import pprint +import re +from unittest.mock import NonCallableMagicMock #HELPER FUNCTION def _get_movies_watched_by_friends(user_data): movies_watched_by_friends = [] @@ -12,6 +14,16 @@ def _get_movies_watched_by_friends(user_data): return movies_watched_by_friends +def _get_movies_not_watched_user(user_data): + movies_not_watched_user = [] + movies_watched_by_friends = _get_movies_watched_by_friends(user_data) + + for movie in user_data["watched"]: + if movie not in movies_watched_by_friends: + movies_not_watched_user.append(movie) + return movies_not_watched_user + + # ------------- WAVE 1 -------------------- def create_movie(title, genre, rating): if not title or not genre or not rating: @@ -108,18 +120,37 @@ def get_friends_unique_watched(user_data): # ------------- WAVE 4 -------------------- # ----------------------------------------- def get_available_recs(user_data): - pass -# user_data["subscriptions"] -# user_data["friends"]["host"] + recommended_movies_subscription = [] + #USER INFO + user_watched_movies = user_data["watched"] #[{}] + # pprint(user_watched_movies) + user_not_watched_movies = _get_movies_not_watched_user(user_data) #[{}] + #USER SUBSCRIPTIONS + user_subscriptions = user_data["subscriptions"] #[] + # print(user_subscriptions) + movies_watched_by_friends = _get_movies_watched_by_friends(user_data) + # pprint(movies_watched_by_friends) + + if movies_watched_by_friends == []: + return None + print("*" * 20) -# Determine a list of recommended movies. A movie should be added to this list if and only if: -# The user has not watched it -# At least one of the user's friends has watched -# The "host" of the movie is a service that is in the user's "subscriptions" -# Return the list of recommended movies + #we want to retrieve the user_watched_movie: + #and if the movie in movies_watched_by_friends + #remove the movie and put it in a new list. + # for movie in user_watched_movies: + # if movie not in movies_watched_by_friends: + # recommended_movies_subscription.append(movie) + # print(recommended_movies_subscription) + for movies in movies_watched_by_friends: + movie_host_subscription = movies["host"] + if movie_host_subscription in user_subscriptions: + recommended_movies_subscription.append(movies) + pprint(recommended_movies_subscription) + # return recommended_movies_subscription # ----------------------------------------- # ------------- WAVE 5 -------------------- # ----------------------------------------- From 57af3305181fc52e6280ada46f9b4b93ed210740 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Mon, 26 Sep 2022 00:20:30 -0400 Subject: [PATCH 05/13] wave 4 completed --- tests/test_wave_04.py | 4 ++-- viewing_party/party.py | 26 ++++++++++++++++++++------ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/tests/test_wave_04.py b/tests/test_wave_04.py index 7524dc3d5..0b0b3c7e2 100644 --- a/tests/test_wave_04.py +++ b/tests/test_wave_04.py @@ -16,7 +16,7 @@ def test_get_available_friend_rec(): assert FANTASY_4b in recommendations assert amandas_data == clean_wave_4_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_no_available_friend_recs(): # Arrange amandas_data = { @@ -38,7 +38,7 @@ def test_no_available_friend_recs(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_no_available_friend_recs_watched_all(): # Arrange amandas_data = { diff --git a/viewing_party/party.py b/viewing_party/party.py index 112795d93..c72c0230d 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -120,7 +120,9 @@ def get_friends_unique_watched(user_data): # ------------- WAVE 4 -------------------- # ----------------------------------------- def get_available_recs(user_data): + recommended_movies = [] recommended_movies_subscription = [] + #USER INFO user_watched_movies = user_data["watched"] #[{}] # pprint(user_watched_movies) @@ -133,7 +135,6 @@ def get_available_recs(user_data): if movies_watched_by_friends == []: return None - print("*" * 20) #we want to retrieve the user_watched_movie: #and if the movie in movies_watched_by_friends @@ -143,11 +144,24 @@ def get_available_recs(user_data): # recommended_movies_subscription.append(movie) # print(recommended_movies_subscription) - for movies in movies_watched_by_friends: - movie_host_subscription = movies["host"] - if movie_host_subscription in user_subscriptions: - recommended_movies_subscription.append(movies) - pprint(recommended_movies_subscription) + for friend_movie in movies_watched_by_friends: #user_data = "friends": [{}] + if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends + recommended_movies.append(friend_movie) + print(recommended_movies) + + print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + for movie in recommended_movies: + if movie["host"] in user_subscriptions: + pprint(recommended_movies_subscription.append(movie)) + + return recommended_movies_subscription + # recommended_movies_subscription.remove(movie["host"]) + # print(recommended_movies_subscription) + # for movies in movies_watched_by_friends: + # movie_host_subscription = movies["host"] + # if movie_host_subscription in user_subscriptions: + # recommended_movies_subscription.append(movies) + # pprint(recommended_movies_subscription) # return recommended_movies_subscription From 609561f84cf768aa9ffa885ddeedaf0294c65335 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Mon, 26 Sep 2022 00:23:30 -0400 Subject: [PATCH 06/13] wave 4 comments gone --- viewing_party/party.py | 29 +++-------------------------- 1 file changed, 3 insertions(+), 26 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index c72c0230d..03afb65cb 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -123,27 +123,14 @@ def get_available_recs(user_data): recommended_movies = [] recommended_movies_subscription = [] - #USER INFO - user_watched_movies = user_data["watched"] #[{}] - # pprint(user_watched_movies) - user_not_watched_movies = _get_movies_not_watched_user(user_data) #[{}] - #USER SUBSCRIPTIONS - user_subscriptions = user_data["subscriptions"] #[] - # print(user_subscriptions) + user_watched_movies = user_data["watched"] + user_not_watched_movies = _get_movies_not_watched_user(user_data) + user_subscriptions = user_data["subscriptions"] movies_watched_by_friends = _get_movies_watched_by_friends(user_data) - # pprint(movies_watched_by_friends) if movies_watched_by_friends == []: return None - #we want to retrieve the user_watched_movie: - #and if the movie in movies_watched_by_friends - #remove the movie and put it in a new list. - # for movie in user_watched_movies: - # if movie not in movies_watched_by_friends: - # recommended_movies_subscription.append(movie) - # print(recommended_movies_subscription) - for friend_movie in movies_watched_by_friends: #user_data = "friends": [{}] if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends recommended_movies.append(friend_movie) @@ -155,16 +142,6 @@ def get_available_recs(user_data): pprint(recommended_movies_subscription.append(movie)) return recommended_movies_subscription - # recommended_movies_subscription.remove(movie["host"]) - # print(recommended_movies_subscription) - # for movies in movies_watched_by_friends: - # movie_host_subscription = movies["host"] - # if movie_host_subscription in user_subscriptions: - # recommended_movies_subscription.append(movies) - # pprint(recommended_movies_subscription) - - - # return recommended_movies_subscription # ----------------------------------------- # ------------- WAVE 5 -------------------- # ----------------------------------------- From bdd5cfb448e895d28078541fdbb8b687c63aec9d Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Mon, 26 Sep 2022 09:59:54 -0400 Subject: [PATCH 07/13] Wave 4 tests completed --- viewing_party/party.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 03afb65cb..651abb646 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -112,7 +112,6 @@ def get_friends_unique_watched(user_data): if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends recommended_movies.append(friend_movie) - # pprint(recommended_movies) return recommended_movies @@ -134,9 +133,7 @@ def get_available_recs(user_data): for friend_movie in movies_watched_by_friends: #user_data = "friends": [{}] if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends recommended_movies.append(friend_movie) - print(recommended_movies) - - print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") + for movie in recommended_movies: if movie["host"] in user_subscriptions: pprint(recommended_movies_subscription.append(movie)) @@ -147,4 +144,6 @@ def get_available_recs(user_data): # ----------------------------------------- def get_new_rec_by_genre(user_data): - pass \ No newline at end of file + movies_not_watched = _get_movies_not_watched_user(user_data) + + # if _get_movies_watched_by_friends \ No newline at end of file From f79c893e5e6a5be0ae03589dfa991f00b09fe932 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Mon, 26 Sep 2022 11:11:35 -0400 Subject: [PATCH 08/13] added genres to list w/o being filtered --- tests/test_wave_05.py | 2 +- viewing_party/party.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/test_wave_05.py b/tests/test_wave_05.py index 85ebb8b18..c008b155b 100644 --- a/tests/test_wave_05.py +++ b/tests/test_wave_05.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec(): # Arrange sonyas_data = clean_wave_5_data() diff --git a/viewing_party/party.py b/viewing_party/party.py index 651abb646..dede24f02 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -144,6 +144,15 @@ def get_available_recs(user_data): # ----------------------------------------- def get_new_rec_by_genre(user_data): - movies_not_watched = _get_movies_not_watched_user(user_data) + list_rec_movies_genre = [] + movies_watched_by_friends = _get_movies_watched_by_friends(user_data) - # if _get_movies_watched_by_friends \ No newline at end of file + if movies_watched_by_friends == []: + return None + + user_genre_favorites = get_most_watched_genre(user_data) + + for movie in movies_watched_by_friends: + if movie["genre"] == user_genre_favorites: + list_rec_movies_genre.append(movie) + print(list_rec_movies_genre) \ No newline at end of file From 11aed374adb679b8a25b73af9fcc7a134a27efa8 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Mon, 26 Sep 2022 11:25:02 -0400 Subject: [PATCH 09/13] added genres to list w/o being filtered --- viewing_party/party.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index dede24f02..cbba15a49 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -155,4 +155,6 @@ def get_new_rec_by_genre(user_data): for movie in movies_watched_by_friends: if movie["genre"] == user_genre_favorites: list_rec_movies_genre.append(movie) - print(list_rec_movies_genre) \ No newline at end of file + print(list_rec_movies_genre) + + \ No newline at end of file From e2b225fa859ebe57bc38a19939f6947c9ce341f8 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Tue, 27 Sep 2022 12:24:43 -0400 Subject: [PATCH 10/13] need to fix one more test --- tests/test_wave_05.py | 7 ++++--- viewing_party/party.py | 37 +++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/tests/test_wave_05.py b/tests/test_wave_05.py index c008b155b..efedff7c9 100644 --- a/tests/test_wave_05.py +++ b/tests/test_wave_05.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -# @pytest.mark.skip() +@pytest.mark.skip() def test_new_genre_rec(): # Arrange sonyas_data = clean_wave_5_data() @@ -54,11 +54,12 @@ def test_new_genre_rec_from_empty_friends(): } raise Exception("Test needs to be completed.") + assert updated_data["watched"] == [] # ********************************************************************* # ****** Complete the Act and Assert Portions of theis tests ********** # ********************************************************************* -@pytest.mark.skip() +# @pytest.mark.skip() def test_unique_rec_from_favorites(): # Arrange sonyas_data = clean_wave_5_data() @@ -72,7 +73,7 @@ def test_unique_rec_from_favorites(): assert INTRIGUE_2b in recommendations assert sonyas_data == clean_wave_5_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_unique_from_empty_favorites(): # Arrange sonyas_data = { diff --git a/viewing_party/party.py b/viewing_party/party.py index cbba15a49..6212f6310 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -1,10 +1,8 @@ from pprint import pprint -import re -from unittest.mock import NonCallableMagicMock #HELPER FUNCTION def _get_movies_watched_by_friends(user_data): movies_watched_by_friends = [] - + for friend in user_data["friends"]: #[{}] for friend_movie in friend["watched"]: #{} if friend_movie in movies_watched_by_friends: @@ -78,7 +76,7 @@ def get_most_watched_genre(user_data): # If the value of "watched" is an empty list, get_most_watched_genre should return None. if user_data["watched"] == []: - return None + return None for movie in user_data["watched"]: #this giving each movie dictionary inside the watched list genre = movie['genre'] #accessing the movie genre and assigning to the genre @@ -123,12 +121,11 @@ def get_available_recs(user_data): recommended_movies_subscription = [] user_watched_movies = user_data["watched"] - user_not_watched_movies = _get_movies_not_watched_user(user_data) user_subscriptions = user_data["subscriptions"] movies_watched_by_friends = _get_movies_watched_by_friends(user_data) - if movies_watched_by_friends == []: - return None + if user_data["friends"] == []: + return len(recommended_movies) for friend_movie in movies_watched_by_friends: #user_data = "friends": [{}] if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends @@ -145,16 +142,24 @@ def get_available_recs(user_data): def get_new_rec_by_genre(user_data): list_rec_movies_genre = [] - movies_watched_by_friends = _get_movies_watched_by_friends(user_data) - if movies_watched_by_friends == []: - return None + popular_genre = get_most_watched_genre(user_data) - user_genre_favorites = get_most_watched_genre(user_data) - - for movie in movies_watched_by_friends: - if movie["genre"] == user_genre_favorites: - list_rec_movies_genre.append(movie) + friend_movies = _get_movies_watched_by_friends(user_data) + + for friend_movie in friend_movies: + if friend_movie["genre"] == popular_genre: + if friend_movie not in user_data["watched"]: + list_rec_movies_genre.append(friend_movie) print(list_rec_movies_genre) + return list_rec_movies_genre + + - \ No newline at end of file +def get_rec_from_favorites(user_data): + list_rec_favorites= [] + friend_favorite_movies = _get_movies_watched_by_friends(user_data) + for favorite_movie in user_data["favorites"]: + if favorite_movie not in friend_favorite_movies: + list_rec_favorites.append(favorite_movie) + return list_rec_favorites From 39bb7bbde3887d045d2b5cecc739c9e5afe80ac1 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Tue, 27 Sep 2022 12:42:16 -0400 Subject: [PATCH 11/13] need to assert a test --- viewing_party/party.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 6212f6310..6a2a61da8 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -154,7 +154,7 @@ def get_new_rec_by_genre(user_data): print(list_rec_movies_genre) return list_rec_movies_genre - +#TODO test one attest method. review attest with Mark. def get_rec_from_favorites(user_data): list_rec_favorites= [] @@ -163,3 +163,4 @@ def get_rec_from_favorites(user_data): if favorite_movie not in friend_favorite_movies: list_rec_favorites.append(favorite_movie) return list_rec_favorites + From b39d2726319f941aa7ed82a19e58ef48b6c9324b Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Tue, 27 Sep 2022 21:45:36 -0400 Subject: [PATCH 12/13] Wave 5 completed --- tests/test_wave_05.py | 16 ++++++++++------ viewing_party/party.py | 1 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/test_wave_05.py b/tests/test_wave_05.py index efedff7c9..e0c033da8 100644 --- a/tests/test_wave_05.py +++ b/tests/test_wave_05.py @@ -2,7 +2,7 @@ from viewing_party.party import * from tests.test_constants import * -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec(): # Arrange sonyas_data = clean_wave_5_data() @@ -17,7 +17,7 @@ def test_new_genre_rec(): assert FANTASY_4b in recommendations assert sonyas_data == clean_wave_5_data() -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_genre_rec_from_empty_watched(): # Arrange sonyas_data = { @@ -52,9 +52,13 @@ def test_new_genre_rec_from_empty_friends(): } ] } - - raise Exception("Test needs to be completed.") - assert updated_data["watched"] == [] + # raise Exception("Test needs to be completed.") + #Act + friend_movie_list = get_rec_from_favorites(sonyas_data) + assert len(friend_movie_list) == 0 + ## WHAT I WANT TO TEST FOR AND CONFIRM ANSWER + #ASSERT + ##CONFIRM THE RESULT THAT I EXPECT TO HAPPEN # ********************************************************************* # ****** Complete the Act and Assert Portions of theis tests ********** # ********************************************************************* @@ -95,7 +99,7 @@ def test_unique_from_empty_favorites(): # Assert assert len(recommendations) == 0 -@pytest.mark.skip() +# @pytest.mark.skip() def test_new_rec_from_empty_friends(): # Arrange sonyas_data = { diff --git a/viewing_party/party.py b/viewing_party/party.py index 6a2a61da8..1838ff84f 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -162,5 +162,6 @@ def get_rec_from_favorites(user_data): for favorite_movie in user_data["favorites"]: if favorite_movie not in friend_favorite_movies: list_rec_favorites.append(favorite_movie) + print(list_rec_favorites) return list_rec_favorites From 60bd4a75f508af20ac943c6e2dfeeb5b1ea3fcf3 Mon Sep 17 00:00:00 2001 From: Diana Soriano Date: Tue, 27 Sep 2022 21:51:09 -0400 Subject: [PATCH 13/13] wave 5 cleanup comments --- viewing_party/party.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/viewing_party/party.py b/viewing_party/party.py index 1838ff84f..2aafdf62c 100644 --- a/viewing_party/party.py +++ b/viewing_party/party.py @@ -83,7 +83,7 @@ def get_most_watched_genre(user_data): genre_list.append(genre) #each genre will be added to the genre_list # the congregate of all genres - favorite_genre = max(set(genre_list), key= genre_list.count) #inside this loop give me the max count of each genre + favorite_genre = max(set(genre_list), key= genre_list.count) return favorite_genre # ----------------------------------------- @@ -107,7 +107,7 @@ def get_friends_unique_watched(user_data): user_watched_movies = user_data["watched"] for friend_movie in movies_watched_by_friends: #user_data = "friends": [{}] - if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends + if friend_movie not in user_watched_movies: recommended_movies.append(friend_movie) return recommended_movies @@ -127,8 +127,8 @@ def get_available_recs(user_data): if user_data["friends"] == []: return len(recommended_movies) - for friend_movie in movies_watched_by_friends: #user_data = "friends": [{}] - if friend_movie not in user_watched_movies:# if user_movie not in movies_watched_by_friends + for friend_movie in movies_watched_by_friends: + if friend_movie not in user_watched_movies: recommended_movies.append(friend_movie) for movie in recommended_movies: @@ -154,7 +154,6 @@ def get_new_rec_by_genre(user_data): print(list_rec_movies_genre) return list_rec_movies_genre -#TODO test one attest method. review attest with Mark. def get_rec_from_favorites(user_data): list_rec_favorites= []