Skip to content

C22 Phoenix - Dana Delgado and Jen Nguyen #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 21 commits into
base: main
Choose a base branch
from

Conversation

ItsJenOClock
Copy link

No description provided.

Copy link

@apradoada apradoada left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 GREEN! 🟢

Hey y'all, you should be super proud of the work you did here! This program looks great and has been well optimized and uses some strong concepts. I made a few suggestions, but nothing that requires an update!

One thought I had was where do you go from here? My biggest suggestion there is to look at some slightly more advanced topics and see if you can incorporate those into your code. Specifically I was thinking about list comprehensions. They are not required but I think they could add to the flow of your code! Just something to think about!

Really great job, you two!

Comment on lines +156 to +159
assert MOVIE_TITLE_1 not in updated_data["watchlist"]
assert updated_data["watched"][0]["title"] == MOVIE_TITLE_1
assert updated_data["watched"][0]["genre"] == GENRE_1
assert updated_data["watched"][0]["rating"] == RATING_1

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These assertions look great! Super robust and cover all the things that might need to be covered!

# *******************************************************************************************
# ****** Add assertions here to test that the correct movie was added to "watched" **********
# *******************************************************************************************
assert movie_to_watch not in updated_data["watchlist"]
assert movie_to_watch in updated_data["watched"]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These look great too!

Comment on lines +203 to +217
def test_no_movie_input():
# Arrange
movie = None
user_data = {
"watched": [],
"watchlist": []
}

# Act
updated_data = add_to_watched(user_data, movie)
updated_data = add_to_watchlist(user_data, movie)

# Assert
assert len(updated_data["watched"]) == 0
assert len(updated_data["watchlist"]) == 0

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I love this additional test! Always feel free to add tests that our test suite might cover! My one suggestion here is to work on the name of your test! test_no_movie_input is a little vague and it's a good idea to try and include both the input and the expected result in the test name. If we look at the previous test, test_does_nothing_if_movie_not_in_watchlist, that might be a good guide for what this test name could look like!

Comment on lines +58 to +60
assert FANTASY_4 in friends_unique_movies
assert HORROR_1 in friends_unique_movies
assert INTRIGUE_3 in friends_unique_movies

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good! One thing I like about what y'all did was you checked for every movie that could be included in the list! I think this was a smart idea as it confirms that there is no duplicate INTRIGUE_3. One fact that you can leverage in a test is that we know exactly how the function should act and exactly what the output should look like!

While checking to see if a particular movie is in the resulting output is great, if you don't check everything else like the length and every other movie that should be in there, it's easy for something to slip through the cracks. I wonder if there is a way to simply test and see if the friends_unique_movies looks like what we are expecting...?!

recommendations = get_new_rec_by_genre(sonyas_data)

# Assert
assert len(recommendations) == 0

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The act and assert here look good! What other asserts could we check that would achieve a similar purpose?

Comment on lines +89 to +94
friends_unique_movies = []
for friend in user_data["friends"]:
for movie in friend["watched"]:
if (movie["title"] not in user_unique_watched and
movie not in friends_unique_movies):
friends_unique_movies.append(movie)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see where y'all are going here, but I wonder if there is a way to avoid a triply nested loop here (technically the not in friends_unique_movies ends up being a loop)?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would using a set for friends_unique_movies instead of a list avoid the triply nested loop, and then we could return list(friends_unique_movies)?

Comment on lines +100 to 108
def get_available_recs(user_data):
friends_unique_movies = get_friends_unique_watched(user_data)
recommended_movies = []

for movie in friends_unique_movies:
if movie["host"] in user_data["subscriptions"]:
recommended_movies.append(movie)
return recommended_movies

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function looks good! Great use of the previously built functions!

for movie in friends_unique_movies:
if movie["genre"] == most_watched_genre:
recommended_movies.append(movie)
return recommended_movies

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once again, this looks great! 👍


def get_rec_from_favorites(user_data):
# We made the assumption that the favorites are in "user_unique_watched"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Always a good idea to state your assumptions for anyone who might read your code after you've written it!

for movie in user_data["favorites"]:
if movie in user_unique_watched:
recommended_movies.append(movie)
return recommended_movies

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ending on a great note! Everything here looks really good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants