예제 #1
0
 def test_repr(self):
     movie = Movie("Moana", 2016, 1)
     review_text = "This movie was very enjoyable."
     rating = 8
     review = Review(movie, review_text, rating)
     print()
     print(review)
예제 #2
0
 def test_add_review(self):
     user1 = User('Martin', 'pw12345')
     movie = Movie("Moana", 2016, 1)
     user1.add_review(Review(movie, "Ahhh", 2))
     print()
     print(user1.reviews)
     print(movie.external_rating)
예제 #3
0
 def test_getters_setters(self):
     movie = Movie("Moana", 2016, 1)
     review_text = "This movie was very enjoyable."
     rating = 8
     review = Review(movie, review_text, rating)
     assert review.rating == 8
     assert review.movie == movie
     assert review.review_text == "This movie was very enjoyable."
예제 #4
0
def load_reviews(data_path, repo):
    filename = os.path.join(data_path, "reviews.csv")
    with open(filename, mode='r') as csvfile:
        movie_file_reader = csv.DictReader(csvfile)

        for row in movie_file_reader:
            if not any(row.values()):
                break

            media = repo.get_media(int(row["media-id"]))
            user = repo.get_user_by_id(int(row["user-id"]))

            review = Review(media, user, row["text"], int(row["rating"]))
            review.__timestamp = datetime.strptime(row["timestamp"],
                                                   "%d/%m/%Y %H:%M")

            user.add_review(review)
            repo.add_review(review)
예제 #5
0
    def test_init(self):
        movie = Movie("Moana", 2016, 1)
        review_text = "This movie was very enjoyable."
        rating = 8
        review = Review(movie, review_text, rating)

        print(review.movie)
        print("Review: {}".format(review.review_text))
        print("Rating: {}".format(review.rating))

        movie1 = ""
        review_text1 = ""
        rating1 = 0
        review1 = Review(movie1, review_text1, rating1)

        assert review1.rating is None
        assert review1.review_text is None
        movieEx = Movie("DEFAULT TITLE", 0, -1)
        print(movieEx)
def test_repo_add_review(in_memory_repo):
    user = in_memory_repo.get_user("admin")
    media = in_memory_repo.get_media(3)
    review = Review(media, user, "review text", 2)
    user.add_review(review)

    in_memory_repo.add_review(review)

    assert in_memory_repo.get_reviews_by_media(media)[-1] is review
    assert in_memory_repo.get_reviews_by_user(user)[-1] is review
예제 #7
0
 def test_eq(self):
     movie = Movie("Moana", 2016, 1)
     review_text = "This movie was very enjoyable."
     rating = 8
     review = Review(movie, review_text, rating)
     movie2 = Movie("Moana", 2016, 1)
     review_text2 = "This movie was very enjoyable."
     rating2 = 8
     review2 = Review(movie2, review_text2, rating2)
     assert review == review2
     movie3 = Movie("Moana", 2017, 2)
     review_text3 = "This movie was very enjoyable."
     rating3 = 8
     review3 = Review(movie3, review_text3, rating3)
     assert review != review3
     movie4 = Movie("", 0, -1)
     review_text4 = ""
     rating4 = 0
     review4 = Review(movie4, review_text4, rating4)
     assert review != review4
예제 #8
0
def add_review(movie_id: int, review_text: str, rating: int, username: str, repo: AbstractRepository):
    # check that the movie exists.
    movie = repo.get_movie(movie_id)
    if movie is None:
        raise NonExistentMovieException

    user = repo.get_user(username)
    if user is None:
        raise UnknownUserException

    review = Review(movie, review_text, rating)
    user.add_review(review)

    # update the repository
    repo.add_review(review)
예제 #9
0
def movie(media_id):
    form = ReviewForm()
    media = repo.repo_instance.get_media(media_id)

    if form.validate_on_submit():
        user = repo.repo_instance.get_user(session['username'])
        if user:
            review_text = form.text.data
            review_rating = int(form.rating.data)

            review = Review(media, user, review_text, review_rating)
            user.add_review(review)
            repo.repo_instance.add_review(review)

    reviews = repo.repo_instance.get_reviews_by_media(media)

    return render_template(
        'movie.html',
        form=form,
        movie=media,
        reviews=reviews,
        handler_url=url_for('movie_bp.movie', media_id=media_id),
    )
예제 #10
0
def test_user_add_duplicate_review(user):
    review = Review(movie, user, "It's ok I guess", 6)
    user.add_review(review)
    user.add_review(review)
    assert user.reviews == [review]