示例#1
0
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
示例#2
0
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"
示例#3
0
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)
示例#4
0
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>"
示例#5
0
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
示例#6
0
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]
示例#7
0
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)]
示例#8
0
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)
示例#9
0
def review():
    return Review(Movie("Up", 2009), 'Review Test', 4)
示例#10
0
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()