def test_init(user): assert user.watched_movies == MovieList() assert user.time_spent_watching_movies_minutes == 0 assert user.reviews == [] assert user.username == "aram485" assert user.password == "Spiderman209" 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 mov = Movie("Up", 2009) mov2 = Movie("Down", 2019) mov.runtime_minutes = 200 mov2.runtime_minutes = 160 review = Review(mov, "Nice", 6) time = mov.runtime_minutes + mov2.runtime_minutes watched_already = MovieList() watched_already.add_movie(mov) watched_already.add_movie(mov2) user2 = User(" ARAM85 ", "spideran", watched_already, None, (review, ), time) print("user2:", user2) print(user2.watched_movies.list) assert user2.watched_movies.list == (Movie("Up", 2009), Movie("Down", 2019)) assert user2.time_spent_watching_movies_minutes == 360 assert user2.username == "aram85" assert user2.password == "spideran"
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_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 add_user(username: str, password: str, repo: AbstractRepository): # Check that the given username is available. user = repo.get_user(username) if user is not None: raise NameNotUniqueException # Encrypt password so that the database doesn't store passwords 'in the clear'. password_hash = generate_password_hash(password) # Create and store the new User, with password encrypted. user = User(username, password_hash) repo.add_user(user)
def user(): 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) return user
def test_update(stats): movie2 = Movie('Brain', 2002) movie2.add_actor(Actor("Julia Roberts")) movie2.add_actor(Actor("Tom Cruise")) movie2.add_genre(Genre("Sci-Fi")) movie2.add_genre(Genre("Action")) director = Director("Christopher Nolan") movie2.director = director stats.user.watch_movie(movie2) stats.update_watched_lists() assert stats.user == User("aram", "one1", [], [], 0) assert stats.watched_movies == [ Movie("Up", 2009), Movie("Down", 2013), Movie("Boom", 1999), Movie("Brain", 2002) ] assert stats.watched_actors == { Actor("Will Smith"): 2, Actor("Daniel Radcliff"): 1, Actor("Selena Gomez"): 1, Actor("Tom Cruise"): 3, Actor("Julia Roberts"): 1 } assert stats.watched_directors == { Director("Peter Jackson"): 2, Director("Taika Waititi"): 1, Director("Christopher Nolan"): 1 } assert stats.watched_genres == { Genre("Comedy"): 3, Genre("Romance"): 1, Genre("Drama"): 1, Genre("Action"): 2, Genre("Sci-Fi"): 1 }
def test_init(stats): assert stats.user == User("aram", "one1", [], [], None, 0) assert stats.watched_movies == [ Movie("Up", 2009), Movie("Down", 2013), Movie("Boom", 1999) ] assert stats.watched_actors == { Actor("Will Smith"): 2, Actor("Daniel Radcliff"): 1, Actor("Selena Gomez"): 1, Actor("Tom Cruise"): 2 } assert stats.watched_directors == { Director("Peter Jackson"): 2, Director("Taika Waititi"): 1 } assert stats.watched_genres == { Genre("Comedy"): 3, Genre("Romance"): 1, Genre("Drama"): 1, Genre("Action"): 1 }
def load_users(data_path: str, repo: MemoryRepository): # for row in read_csv_file(os.path.join(data_path, 'test1user.csv')): print("OS", os.path.join(data_path, 'Data5Users.csv')) for row in read_csv_file(os.path.join(data_path, 'Data5Users.csv')): watching_time = 0 watchlist_string = row['Watchlist'].strip().split("|") watchlist = MovieList() for movie_name in watchlist_string: movie_name = movie_name.strip().split(";") try: movie = Movie(movie_name[0].strip(), int(movie_name[1].strip())) except: print("Invalid movie") else: if movie in repo.get_movies(): i = repo.get_movies().index(movie) movie = repo.get_movies()[i] else: pass #repo.add_movie(movie) if movie not in watchlist.list: watchlist.add_movie(movie) watched_string = row["Watched_movies"].strip().split("|") watched = MovieList() for movie_name in watched_string: movie_name = movie_name.strip().split(";") try: movie = Movie(movie_name[0].strip(), int(movie_name[1].strip())) except: print("Invalid movie") else: if movie in repo.get_movies(): i = repo.get_movies().index(movie) movie = repo.get_movies()[i] else: pass #repo.add_movie(movie) if movie not in watched: watched.add_movie(movie) if movie.runtime_minutes is not None: try: watching_time += movie.runtime_minutes except: pass reviews_string = row["Reviews"].strip().split("|") review_list = [] for review_string in reviews_string: review_string = review_string.strip().split(";") if len(review_string) > 4: try: movie = Movie(review_string[0].strip(), int(review_string[1].strip())) except: print("Invalid movie") else: if movie in repo.get_movies(): i = repo.get_movies().index(movie) movie = repo.get_movies()[i] else: pass #repo.add_movie(movie) review_message = review_string[3].strip() try: #timestamp = datetime.strptime(review_string[4].strip()) timestamp = datetime.fromisoformat( review_string[4].strip()) except: pass else: try: rating = float(review_string[2]) except: pass else: review = Review(movie, review_message, rating) review.timestamp = timestamp review_list.append(review) repo.add_review(review) user = User(username=row['Username'].strip(), password=generate_password_hash(row['Password'].strip()), watched=watched, reviews=tuple(review_list), time_spent=watching_time, watchlist=watchlist) repo.add_user(user)
def user(): return User( " ARAM485 ", "Spiderman209", )
def test_lt(): user1 = User("Brad Pitt", 4) user2 = User("brae Pitt", 7) assert user1 < user2
def test_add_get_user(in_memory_repo): assert in_memory_repo.get_user("pikachu") is None in_memory_repo.add_user(User("pikachu", "three3")) assert in_memory_repo.get_user("pikachu") == User("pikachu", "some password")