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_add_review(self): user1 = User('user1', 'pw12345') movie1 = Movie("Star War", 19879) movie1.runtime_minutes = 120 user1.watch_movie(movie1) review = Review(movie1, "This is a great movie!", 9) user1.add_review(review) assert user1.reviews == [review]
def test_add_review(): user1 = User('Me', 'pw12345') movie2 = Movie("Star Wars", 1977) review = Review( movie2, "My car turned into the Millennium Falcon after showing the movie to it", 10) user1.add_review(review) assert user1.reviews == [review]
def simulate( self, num_users: int = _DEFAULT_USER_COUNT, min_num_movies: int = _DEFAULT_MIN_MOVIES_PER_USER, max_num_movies: int = _DEFAULT_MAX_MOVIES_PER_USER) -> 'State': self._validate_params(num_users, min_num_movies, max_num_movies) users = [] reviews = [] num_movies = len(self._movies) upper_bound = min(max_num_movies or num_movies, num_movies) population = list(range(0, num_movies)) now = datetime.utcnow().timestamp() for i in range(num_users): username = _rand_string(4) password = _rand_string() user = User(username, password) # Pick n distinct movies movies = [ self._movies[idx] for idx in sample( population, randint(min_num_movies, upper_bound)) ] # Add those movies to the user's watchlist for movie in movies: user.add_to_watchlist(movie) # Watch a random number of movies on the user's watchlist for j in range(randint(0, user.watchlist_size())): user.watch_movie(movies[j]) # Review a random number of the movies the user watched for j in range(randint(0, len(user.watched_movies))): movie = movies[j] review_text = _rand_string() rating = randint(0, 10) release_date = datetime(movie.release_date, 1, 1).timestamp() delta = randint( 0, int(now - release_date) ) # float -> int will be lossy but not a big deal here delta += random() # Add a random number of milliseconds timestamp = datetime.fromtimestamp(now - delta) review = Review(movie, review_text, rating, timestamp) user.add_review(review) reviews.append(review) users.append(user) return self.State(users, reviews)
def create_and_add_review_movie_and_user_to_group_and_individual_list( self, user: User, review_text: str, rating: int): if type(user) is not User or type(review_text) is not str or type( rating) is not int: raise TypeError() else: self._users.append(user) review = Review(self._movie_watched_together, review_text, rating) self._reviews.append(review) user.watch_movie(self._movie_watched_together) user.add_review(review)
def record_user_and_review(self, user: User, review_text: str, rating: int): if type(user) is not User or type(review_text) is not str or type( rating) is not int: raise TypeError() else: self._users.append(user) review = Review(self._movie_watched_together, review_text, rating) self._reviews.append(review) user.watch_movie(self._movie_watched_together) user.add_review(review)
def test_user(self): movie = Movie("Moana", 2016) movie.runtime_minutes = 50 review_text = "This movie was very enjoyable." rating = 8 review = Review(movie, review_text, rating) user1 = User('Martin', 'pw12345') user2 = User('Ian', 'pw67890') user3 = User('Daniel', 'pw87465') print(user3.time_spent_watching_movies_minutes) user3.watch_movie(movie) user3.add_review(review) print(user3.time_spent_watching_movies_minutes) print(user3.watched_movies) print(user3.reviews) print(user1 == user2) print(user1) print(user2) print(user3)
def test_add_review(): user = User("Jack Huang", "123124") movie1 = Movie("Your Name", 2000) movie2 = Movie("Spirited Away", 1995) movie3 = Movie("Avengers 4", 1899) review1 = Review(movie1, "Good 1", 1) review2 = Review(movie2, "Good 2", 2) review3 = Review(movie3, "Good 3", 3) assert user.reviews == [] user.add_review(review1) user.add_review(review2) user.add_review(review3) assert user.reviews == [ Review(movie1, "Good 1", 1), Review(movie2, "Good 2", 2), Review(movie3, "Good 3", 3) ]
def test_all(self): user1 = User("nathanl127", "passwordgoeshere") user2 = User("boomer127", "passwordgoeshere") review = Review(Movie("Star Wars", 1999), "Great Movie", 10) a_movie = Movie("Back To The Future", 1965) a_movie.runtime_minutes = 10 assert user1.user_name == "nathanl127" assert user1.password == "passwordgoeshere" assert user1.reviews == [] assert user1.time_spent_watching_movies_minutes == 0 assert len(user1.watched_movies) == 0 user1.watch_movie(a_movie) assert len(user1.watched_movies) == 1 assert user1.time_spent_watching_movies_minutes == 10 user1.add_review(review) assert len(user1.reviews) == 1 assert repr(user1) == "<User nathanl127>" assert user2 < user1 assert hash(user1) != hash(user2)
def test_user(self): # add movie user1 = User(' Martin ', 'pw12345') print(user1.user_name) user1 = User('Martin', 'pw12345') user2 = User('Ian', 'pw67890') user3 = User('Daniel', 'pw87465') print(user1) print(user2) print(user3) movie1 = Movie("Up", 2009) movie1.runtime_minutes = 150 user1.watch_movie(movie1) user1.watch_movie(movie1) print("Watched Movies:", user1.watched_movies) print("Watching Time:", user1.time_spent_watching_movies_minutes) review1 = Review(movie1, "test", 5) user1.add_review(review1) user1.add_review(review1) print(user1.reviews)
def test_add_review(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) user1.add_review(Review(movies[0], "Daughter loved it", 8)) user1.add_review(Review(movies[1], "Good laugh", 9)) user1.add_review(Review(movies[2], "Good for the kids", 9)) user1.add_review(Review(movies[3], "Great action sequences", 7)) user2.add_review(Review(movies[0], "It was awesome!!", 10)) user3.add_review( Review(movies[0], "Little siblings absolutely enjoyed it.", 9)) user3.add_review( Review(movies[2], "Brings back all the good memories", 10)) user3.add_review(Review(movies[3], "I'm a fan of giant robots now", 9)) user4.add_review(Review(movies[0], "Watched it too many times now", 6)) user4.add_review(Review(movies[2], "Take me back", 7)) user4.add_review(Review(movie, "Greatly thrilling", 9)) assert len(user1.reviews) == 4 assert len(user2.reviews) == 1 assert len(user3.reviews) == 3 assert len(user4.reviews) == 3 simulation.add_user(user3) simulation.add_review(user1, "Very entertaining and suspenseful", 9) simulation.add_review(user2, "Definitely not for kids my age", 4) simulation.add_review(user3, "Oh that was scary", 9) simulation.add_review(user4, "Full of wonderful twists and turns", 10) assert len(user1.reviews) == 5 assert len(user2.reviews) == 2 assert len(user3.reviews) == 4 assert len(user4.reviews) == 4
def write_review(self, user: User, text, rating_num): review = Review(self.__movie_to_watch, text, rating_num) if isinstance(user, User) and user in self.__user_set: user.add_review(review) self.__review_dict[user] = review
def add_review(self, user: User, review_text: str, rating: int): user_review = Review(self.__movie, review_text, rating) user.add_review(user_review)
def test_add_review_to_user(): user = User('mike', 'nope') movie = Movie("Moana", 2016) review = Review(movie, "was pretty good", 9) user.add_review(review) assert user.reviews == [review]