AC2 - Sheung Wan Wong#19
Conversation
…nre_rec_from_empty_friends assertion
| # ****** Add assertions here to test that the correct movie was added to "watched" ********** | ||
| # ******************************************************************************************* | ||
| assert updated_data["watched"][-1] == { | ||
| "title": "It Came from the Stack Trace", |
There was a problem hiding this comment.
Good job checking all of the attributes here
|
|
||
| def create_movie(title, genre, rating): | ||
| pass | ||
| if bool(title) and bool(genre) and bool(rating): |
There was a problem hiding this comment.
Good job covering validation of both "" and None with "truthiness!"
|
|
||
| def watch_movie(user_data, title): | ||
|
|
||
| for m_to_watch in user_data["watchlist"]: |
There was a problem hiding this comment.
Note, while this may work here, it's considered dangerous practice to modify the content of a data structure that you're looping over. Especially in more complex code, this can open you up to complex errors. A simple alternative here could be to save a copy of what you get from movie in user_data["watchlist"] and iterate over that, so that as you modify user_data["watchlist"], there's no risk.
|
|
||
| def get_most_watched_genre(user_data): | ||
| from collections import defaultdict | ||
| dic = defaultdict(int) |
There was a problem hiding this comment.
Was there a reason you'd chosen defaultdict here?
There was a problem hiding this comment.
Nice use of a dict as part of your data processing
| if value > max_num: | ||
| max_num = value | ||
| most_watched_genre = key | ||
| return most_watched_genre if user_data["watched"] else None |
There was a problem hiding this comment.
Why if user_data["watched"]? Did you mean "if in"? In general I prefer simple return statements, with the more complex logic split up onto previous lines, for added readability and maintainability.
| watched_movies_list = user_data["watched"] | ||
|
|
||
|
|
||
| fds_watched_movies_list= [] |
There was a problem hiding this comment.
Could sets have been an alternative to the nested loops you used in these functions? :)
No description provided.