def test_add_review(): repo = MemoryRepository(movies_mock, [], [], []) u1, u2 = User("bob", "pass123"), User("bobb", "pass12") assert repo.add_user("bob", "pass123") assert repo.add_user("bobb", "pass12") r1 = Review( 1, "Darth Plagueis was dumb, why couldn't he stop his apprentice??!!", 3) r2 = Review(2, "The Sith did nothing wrong, Jedis just spread fake news", 7) r3 = Review(2, "Star Wars is silly", 1) r4 = Review( 2, "Oops the previous review was written by my cat, Star Wars is wonderful", 9) # user_id, review repo.add_review(0, r1) repo.add_review(0, r2) repo.add_review(1, r3) repo.add_review(1, r4) # review for the movie m1 of id "1" assert repo.get_reviews(1) == [(u1, [r1])] assert repo.get_reviews(2) == [(u1, [r2]), (u2, [r3, r4])]
def test_user(): movie1 = Movie("Moana", 2016) movie1.runtime_minutes = 107 movie2 = Movie("The Lion King", 1994) movie2.runtime_minutes = 99 review_text = "This movie was very enjoyable." rating = 8 review = Review(movie1, review_text, rating) user = User("John", "Str0ngP4ssw0rd") user.watch_movie(movie1) user.watch_movie(movie2) user.watch_movie(movie1) user.add_review(review) user2 = User("John", "c0pyc4t") user3 = User("Andrew", "yep") assert user == user2 assert user3 < user2 assert user3.user_name == "andrew" assert user.time_spent_watching_movies_minutes == 313 assert len(user.watched_movies) == 2 assert len(user.reviews) == 1
def test_watching_sim_review_average(self): a = MovieWatchingSimulation() movie1 = Movie("Moana", 2016) movie2 = Movie("Ice Age", 2002) movie3 = Movie("Guardians of the Galaxy", 2012) user1 = User('Jack', 'pw12345') user2 = User('James', 'pw67890') user3 = User('Janice', 'pw87465') review1 = Review(movie1, "Was good", 6) review2 = Review(movie1, "Average", 5) review3 = Review(movie1, "Very Great", 8) review4 = Review(movie2, "Great", 7) review5 = Review(movie2, "Excellent", 9) review6 = Review(movie3, "Boring", 3) a.add_movie_review(review1.movie, user1, review1.rating) a.add_movie_review(review2.movie, user2, review2.rating) a.add_movie_review(review3.movie, user3, review3.rating) a.add_movie_review(review4.movie, user1, review4.rating) a.add_movie_review(review5.movie, user2, review5.rating) a.add_movie_review(review6.movie, user1, review6.rating) a.add_movie_review(review4.movie, user1, review4.rating) assert a.get_movie_rating_average(movie1) == "Average Rating: 6.33" assert a.get_movie_rating_average(Movie("Ice Age", 2003)) == "Unrated: No Reviews"
def test_least_watched(self): user1 = User("John", "abc123") user2 = User("Mike", "abcd123") user3 = User("Sam", "bebebebe") movie1 = Movie("Moana", 2016) movie2 = Movie("Ice Age", 2002) movie3 = Movie("John Cena", 1999) movie4 = Movie("Bravo", 2000) movie5 = Movie("Charlie", 1987) user1.watch_movie(movie1) user1.watch_movie(movie2) user1.watch_movie(movie2) user1.watch_movie(movie2) user1.watch_movie(movie2) user1.watch_movie(movie2) user2.watch_movie(movie2) user2.watch_movie(movie3) user3.watch_movie(movie3) lst = [movie1, movie2, movie3, movie4, movie5] film_comparison = movie_compare(lst) film_comparison.least_watched() assert film_comparison.movies_lst == [ movie4, movie5, movie1, movie3, movie2 ]
def test_init(self): user1 = User("Martin", "12345") user2 = User("Vivian", "12345") user_list = [user1, user2] the_movie = Movie("Moana", 2016) watchSimulation1 = MovieWatchingSimulation(user_list, the_movie) assert watchSimulation1.users == user_list
def test_init(self): user1 = User('Martin', 'pw12345') user2 = User('Ian', 'pw67890') user3 = User('Daniel', 'pw87465') assert repr(user1) == "<User martin>" assert repr(user2) == "<User ian>" assert repr(user3) == "<User daniel>"
def test_watching_sim_add_review(self): a = MovieWatchingSimulation() movie1 = Movie("Moana", 2016) movie2 = Movie("Ice Age", 2002) movie3 = Movie("Guardians of the Galaxy", 2012) user1 = User('Jack', 'pw12345') user2 = User('James', 'pw67890') user3 = User('Janice', 'pw87465') review1 = Review(movie1, "Was good", 6) review2 = Review(movie1, "Average", 5) review3 = Review(movie1, "Very Great", 8) review4 = Review(movie2, "Great", 7) review5 = Review(movie2, "Excellent", 9) review6 = Review(movie3, "Boring", 3) a.add_movie_review(review1.movie, user1, review1.rating) a.add_movie_review(review2.movie, user2, review2.rating) a.add_movie_review(review3.movie, user3, review3.rating) a.add_movie_review(review4.movie, user1, review4.rating) a.add_movie_review(review5.movie, user2, review5.rating) a.add_movie_review(review6.movie, user1, review6.rating) a.add_movie_review(review4.movie, user1, review4.rating) assert a.movie_dict == { movie1: [[user1, 6], [user2, 5], [user3, 8]], movie2: [[user1, 7], [user2, 9], [user1, 7]], movie3: [[user1, 3]] }
def test_change_movie(self, watching_session): user1 = User("Aidan", "Wasx") user2 = User("Iona", "Mort") watching_session.change_movie(user2, Movie("Lion King", 2019)) assert watching_session.watching == Movie("Cars", 2008) watching_session.change_movie(user1, Movie("Lion King", 2019)) assert watching_session.watching == Movie("Lion King", 2019)
def test_user_index(): repo = MemoryRepository(movies_mock, [], [], []) assert repo.add_user("a", "c") assert repo.add_user("b", "d") assert repo.get_user(0) == User("a", "c") assert repo.get_user(1) == User("b", "d") assert repo.get_user(2) is None
def the_sim(): filename = 'datafiles/Data1000Movies.csv' movie_file_reader = MovieFileCSVReader(filename) movie_file_reader.read_csv_file() sim = MovieWatchingSimulation(movie_file_reader) sim.add_user(User("Paul", "wellington")) sim.add_user(User('jessica', 'piano')) return sim
def test_add_user(self): user1 = User("Martin", "12345") user2 = User("Vivian", "12345") user_list = [user1, user2] the_movie = Movie("Moana", 2016) watchSimulation1 = MovieWatchingSimulation(user_list, the_movie) user3 = User("Mark", "54321") watchSimulation1.add_user(user3) assert watchSimulation1.users == [user1, user2, user3]
def test_compare(): user1 = User("Brad Pitt", 4) user2 = User("brad PiTt", 5) assert user1 == user2 user2 = 4 assert user1 != user2 user1 = User("", "goat") user2 = User(45, "HFTbhy") assert user1 == user2
def test_done_watch(self): user1 = User("Martin", "12345") user2 = User("Vivian", "12345") the_movie = Movie("Moana", 2016) user1.add_watchList(the_movie) user_list = [user1, user2] watchSimulation1 = MovieWatchingSimulation(user_list, the_movie) watchSimulation1.done_watching() assert watchSimulation1.finish_watch == True
def test_remove_from_watchlist(self): # initialise the different movies movies = [ Movie("Moana", 2016), Movie("Guardians of the Galaxy", 2014), Movie("Ice Age", 2002), Movie("Transformers", 2007) ] movies[0].runtime_minutes = 107 movies[1].runtime_minutes = 121 movies[2].runtime_minutes = 103 movies[3].runtime_minutes = 144 movie = Movie("Us", 2019) movie.runtime_minutes = 121 random_movie1 = Movie("Black Panther", 2018) random_movie1.runtime_minutes = 135 random_movie2 = Movie("Night School", 2018) random_movie2.runtime_minutes = 112 # user 1 user1 = User("Martin", "pw12345") for mov in movies: user1.watch_movie(mov) user1.watchlist.add_movie(movie) user1.watchlist.add_movie(random_movie1) # user 2 user2 = User("Alfie", "pw23456") user2.watch_movie(movies[0]) user2.watchlist.add_movie(random_movie1) user2.watchlist.add_movie(random_movie2) # user 3 will be added in after the movie is watchingsimulation user3 = User("Yara", "pw34567") user3.watch_movie(movies[0]) user3.watch_movie(movies[2]) user3.watch_movie(movies[3]) user3.watchlist.add_movie(movie) # user 4 user4 = User("Danny", "pw45678") user4.watch_movie(movies[0]) user4.watch_movie(movies[2]) user4.watch_movie(movie) user4.watchlist.add_movie(random_movie2) user_list = [user1, user2, user4] simulation = MovieWatchingSimulation(movie, user_list) assert repr(simulation.movie) == "<Movie Us, 2019>" assert repr(simulation.user_list ) == "[<User martin>, <User alfie>, <User danny>]" assert user1.watchlist.size == 1 assert user2.watchlist.size == 2 assert user3.watchlist.size == 1 assert user4.watchlist.size == 1
def test_init(self): movie = Movie("Moana", 2016) user2 = User('Ian', 'pw67890') user3 = User('Daniel', 'pw87465') user4 = User('Martin', 'pw12345') user_list = [user2, user3, user4] watch = MovieWatchingSimulation(user_list, movie) assert repr( watch ) == "Movie watching : <Movie Moana, 2016>\nUser(s) watching : [<User ian>, <User daniel>, <User martin>]\nReview : None"
def test_watch_done(self): user1 = User("Martin", "12345") user2 = User("Vivian", "12345") the_movie = Movie("Moana", 2016) user1.add_watchList(the_movie) assert user1.watchList == [the_movie] user_list = [user1, user2] watchSimulation1 = MovieWatchingSimulation(user_list, the_movie) watchSimulation1.done_watching() assert len(user1.watchList) == 0
def test_change_host(self, watching_session): user1 = User("Aidan", "Wasx") user2 = User("Iona", "Mort") watching_session.change_host(user2, user2) assert watching_session.host == user1 watching_session.add_friend(user1,user2) assert watching_session.size() == 2 watching_session.change_host(user1, user2) assert watching_session.host == user2 assert watching_session.size() == 1 assert watching_session.users_in_session() == [user2]
def test_end_session(self, watching_session): user1 = User("Aidan", "Wasx") user2 = User("Iona", "Mort") watching_session.add_friend(user1, user2) watching_session.end_session(user2) assert watching_session.size() == 2 assert watching_session.watching == Movie("Cars", 2008) watching_session.end_session(user1) assert watching_session.size() == 1 assert watching_session.users_in_session() == [user1] assert watching_session.watching is None
def test_add_review(self): movie = Movie('Moana', 2016) review_text = "This movie was very enjoyable." rating = 8 user2 = User('Ian', 'pw67890') user3 = User('Daniel', 'pw87465') user4 = User('Martin', 'pw12345') user_list = [user2, user3, user4] watch = MovieWatchingSimulation(user_list, movie) watch.add_review(review_text, rating) assert (watch.review != None) == True
def test_kick_user(self, watching_session): user1 = User("Aidan", "Wasx") user2 = User("Iona", "Mort") watching_session.add_friend(user1, user2) assert watching_session.size() == 2 watching_session.kick_user(user2, user2) assert watching_session.size() == 2 watching_session.kick_user(user1, User("Dave", "Brown")) assert watching_session.size() == 2 watching_session.kick_user(user1, user2) assert watching_session.size() == 1
def test_init(user): assert user.watched_movies == [] assert user.time_spent_watching_movies_minutes == 0 assert user.reviews == [] assert user.username == "aram485" assert user.password == "spiderman" user1 = User("", 4) user2 = User(45, "") assert user1.username is None assert user1.password is None assert user2.username is None assert user2.password is None
def test_repr_(): movie1 = Movie("Moana", 2016) movie1.runtime_minutes = 107 user1 = User('Martin', 'pw12345') review_text1 = "This movie was very enjoyable." rating1 = 9 user2 = User('Ashton', 'pw54321') review_text2 = "This movie was ok." rating2 = 6 cflix = MovieWatchingSimulation(movie1) cflix.record_user_and_review(user1, review_text1, rating1) cflix.record_user_and_review(user2, review_text2, rating2) print(repr(cflix))
def test_record_user_and_review_multiple(): movie1 = Movie("Moana", 2016) movie1.runtime_minutes = 107 user1 = User('Martin', 'pw12345') review_text1 = "This movie was very enjoyable." rating1 = 9 user2 = User('Ashton', 'pw54321') review_text2 = "This movie was ok." rating2 = 6 cflix = MovieWatchingSimulation(movie1) cflix.create_and_add_review_movie_and_user_to_group_and_individual_list(user1, review_text1, rating1) cflix.create_and_add_review_movie_and_user_to_group_and_individual_list(user2, review_text2, rating2) assert len(cflix.reviews) == 2 assert len(cflix.users) == 2
def test_review(self): user1 = User("Martin", "12345") user2 = User("Vivian", "12345") the_movie = Movie("Moana", 2016) user1.add_watchList(the_movie) user_list = [user1, user2] watchSimulation1 = MovieWatchingSimulation(user_list, the_movie) watchSimulation1.done_watching() movie = Movie("Moana", 2016) review_text = "This movie was very enjoyable." rating = 8 review1 = Review(movie, review_text, rating) assert len(watchSimulation1.reviews) == 0 watchSimulation1.add_review(user1, review1) assert len(watchSimulation1.reviews) == 1
def test_hash(): user1 = User("Brad Pitt", "goat") user2 = User("Brad Pitt", "goat") assert hash(user1) == hash(user2) user2 = User("Taika Waititj", "goat") assert hash(user1) != hash(user2) dict1 = dict() dict1[user1] = user2 assert dict1[user1] == user2 assert repr(dict1[user1]) == "<User taika waititj>" user1 = User("", "friends") user2 = User(9, 6) dict1[user1] = user2 assert dict1[user1] == user2 assert repr(dict1[user1]) == "<User None>"
def test_add_friend(self, watching_session): watching_session.add_friend(User("Aidan", "Wasx"), User("Iona", "Mort")) assert watching_session.size() == 2 assert watching_session.users_in_session() == [User("Aidan", "Wasx"), User("Iona", "Mort")] watching_session.add_friend(User("Sam", "Waz"), User("Sam", "Waz")) assert watching_session.size() == 2 watching_session.add_friend(User("Aidan", "Wasx"), User("Aidan", "Wasx")) assert watching_session.size() == 2
def test_hash(user): # Check hash doesn't change for the same instance assert hash(user) == hash(user) # Check hash is the same with another instance with the same properties username = user.user_name password = user.password other = User(username, password) assert hash(user) == hash(other) # Check password doesn't affect hash username = user.user_name password = "******" other = User(username, password) assert hash(user) == hash(other)
def test_constructor_empty_string_username(): username = "" password = "******" user = User(username, password) assert user.user_name is None assert user.password == password
def stats(): movie = Movie('Up', 2009) movie.add_actor(Actor("Will Smith")) movie.add_actor(Actor("Daniel Radcliff")) movie.add_genre(Genre("Comedy")) movie.add_genre(Genre("Drama")) director = Director("Peter Jackson") movie.director = director movie1 = Movie('Down', 2013) movie1.add_actor(Actor("Tom Cruise")) movie1.add_actor(Actor("Selena Gomez")) movie1.add_genre(Genre("Comedy")) movie1.add_genre(Genre("Romance")) director = Director("Peter Jackson") movie1.director = director movie2 = Movie('Boom', 1999) movie2.add_actor(Actor("Will Smith")) movie2.add_actor(Actor("Tom Cruise")) movie2.add_genre(Genre("Comedy")) movie2.add_genre(Genre("Action")) director = Director("Taika Waititi") movie2.director = director user = User("aram", "one1") user.watch_movie(movie) user.watch_movie(movie1) user.watch_movie(movie2) stats = Stats(user) return stats
def test_constructor_invalid_username(): username = 42 password = "******" user = User(username, password) assert user.user_name is None assert user.password == password