def test_eq(review): time.sleep(1) review1 = Review(Movie("Up", 2009), 'Review Test', 4) assert review1 != review review2 = Review(Movie("Up", 2009), 'Review Test', 0) review3 = Review(Movie("Up", 2009), '', 10) review4 = Review(Movie("Up", 2009), 9, 1) review5 = Review(Movie("", 1989), "Review Test", 8) assert review2 != review assert review3 != 9 assert review4 != review assert review5 != review
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 write_review(title, year, text, rating, username, repo: AbstractRepository): user = get_user(username, repo) movie_reviewed = repo.get_movie(title, year) review = Review(movie_reviewed, text, rating) repo.add_review(review) user.add_review(review)
def test_init(review): assert review.movie == Movie("Up", 2009) assert review.review_text == 'Review Test' assert review.rating == 4 assert type(review.timestamp) == datetime review1 = Review(Movie("Up", 2009), 'Review Test', 11) review2 = Review(Movie("Up", 2009), 'Review Test', 0) review3 = Review(Movie("Up", 2009), '', 10) review4 = Review(Movie("Up", 2009), 9, 1) review5 = Review(Movie("", 1989), "Review Test", 8) assert review1.rating is None assert review2.rating is None assert review3.review_text is None assert review4.review_text is None assert repr(review5.movie) == "<Movie None, None>" assert repr(review1) == "<Rating None, Review Review Test>" assert repr(review4) == "<Rating 1, Review None>"
def test_write_review(in_memory_repo): review = Review(Movie("Split", 2016), "Great", 9.1) review_services.write_review("Split", 2016, "Great", 9.1, "aram485", in_memory_repo) movie_name = "Split" movie_year = 2016 reviews = review_services.get_reviews(Movie(movie_name, movie_year), in_memory_repo) assert reviews[2].review_text == "Great" assert len(reviews) == 3
def test_get_reviews_from_movies(in_memory_repo): rev = Review(in_memory_repo.get_movie("Split", 2016), "Wow!", 10.0) rev.timestamp = datetime.fromisoformat("2018-03-28 16:31:26") rev2 = Review(in_memory_repo.get_movie("Split", 2016), "I love this movie so much!! It really makes you think", 9.0) rev2.timestamp = datetime.fromisoformat("2020-02-28 18:31:26") assert in_memory_repo.get_reviews_for_movie( in_memory_repo.get_movie("Split", 2016)) == [rev2, rev]
def test_add_review(user): assert user.reviews == [] mov = Movie("Up", 2009) review = Review(mov, "Nice", 6) user.add_review(review) assert user.reviews == [Review(mov, "Nice", 6)] user.add_review(4) assert user.reviews == [Review(mov, "Nice", 6)] review = Review(mov, "Okay", 4) user.add_review(review) assert user.reviews == [Review(mov, "Nice", 6), Review(mov, "Okay", 4)]
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 review(): return Review(Movie("Up", 2009), 'Review Test', 4)
def test_add_get_review(in_memory_repo): rev = Review(Movie("Docker", 2009), "So great", 9.3) assert rev not in in_memory_repo.get_reviews() in_memory_repo.add_review(rev) assert rev in in_memory_repo.get_reviews()