def test_reper(simulator):
    user1 = User('user1_username', 'user1_password')
    user1_first_review = Review(user1, Movie("Star War", 2017, 2),
                                "This is user1's first review for Star War", 9,
                                date.fromisoformat('2020-09-21'))
    user1_second_review = Review(user1, Movie("Star War", 2017, 1),
                                 "This is user1's second review for Star War",
                                 9, date.fromisoformat('2020-09-21'))
    user1_another_review = Review(user1, Movie("Hunger Game", 2016, 3),
                                  "This is user1's review for Hunger game", 8,
                                  date.fromisoformat('2020-09-21'))
    user1.add_review(user1_first_review)
    user1.add_review(user1_second_review)
    user1.add_review(user1_another_review)

    user2 = User('user2_username', 'user2_password')
    user2_first_review = Review(user2, Movie("Star War", 2017, 1),
                                "This is user2's first review for Star War", 6,
                                date.fromisoformat('2020-09-21'))
    user2.add_review(user2_first_review)

    simulator.add_user(user1)
    simulator.add_user(user2)
    simulator.retrieve_review()
    assert repr(
        simulator
    ) == "Movie Watching Simulation - Star War : 2017\nNumber of users watching: 2\nNumber of reviews received: 3"
def test_show_live_reviews(simulator):
    user1 = User('user1_username', 'user1_password')
    user1_first_review = Review(user1, Movie("Star War", 2017, 1),
                                "This is user1's first review for Star War", 9,
                                date.fromisoformat('2020-09-21'))
    user1_second_review = Review(user1, Movie("Star War", 2017, 2),
                                 "This is user1's second review for Star War",
                                 9, date.fromisoformat('2020-09-21'))
    user1_another_review = Review(user1, Movie("Hunger Game", 2016, 3),
                                  "This is user1's review for Hunger game", 8,
                                  date.fromisoformat('2020-09-21'))
    user1.add_review(user1_first_review)
    user1.add_review(user1_second_review)
    user1.add_review(user1_another_review)

    user2 = User('user2_username', 'user2_password')
    user2_first_review = Review(user2, Movie("Star War", 2017, 4),
                                "This is user2's first review for Star War", 6,
                                date.fromisoformat('2020-09-21'))
    user2.add_review(user2_first_review)

    simulator.add_user(user1)
    simulator.add_user(user2)
    simulator.retrieve_review()
    assert simulator.show_live_reviews() == "Live Reviews for <Movie Star War, 2017>:\n<User user1_username>  --->  This is user1's first review " \
                                            "for Star War\n" + "<User user1_username>  --->  This is user1's second review for Star War\n" \
    + "<User user2_username>  --->  This is user2's first review for Star War\n"
def test_adding_reviews(simulator):
    user1 = User('user1_username', 'user1_password')
    user1_first_review = Review(user1, Movie("Star War", 2017, 1),
                                "This is user1's first review for Star War", 9,
                                date.fromisoformat('2020-09-21'))
    user1_second_review = Review(user1, Movie("Star War", 2017, 1),
                                 "This is user1's second review for Star War",
                                 9, date.fromisoformat('2020-09-21'))
    user1_another_review = Review(user1, Movie("Hunger Game", 2016, 2),
                                  "This is user1's review for Hunger game", 8,
                                  date.fromisoformat('2020-09-21'))
    user1.add_review(user1_first_review)
    user1.add_review(user1_second_review)
    user1.add_review(user1_another_review)

    user2 = User('user2_username', 'user2_password')
    user2_first_review = Review(user2, Movie("Star War", 2017, 1),
                                "This is user2's first review for Star War", 6,
                                date.fromisoformat('2020-09-21'))
    user2.add_review(user2_first_review)

    simulator.add_user(user1)
    simulator.add_user(user2)
    simulator.retrieve_review()
    assert simulator.num_of_reviews == 3
def test_repository_does_not_add_a_review_without_a_user(in_memory_repo):
    movie = in_memory_repo.get_movie_by_index(3)
    review = Review(user=None,
                    movie=movie,
                    review_text="testing",
                    rating=6,
                    timestamp=date.today())
    with pytest.raises(RepositoryException):
        in_memory_repo.add_review(review)
    def test_add_review(self):
        user1 = User('user1', 'pw12345')
        movie1 = Movie("Star War", 19879, 1)
        movie1.set_runtime_minutes(120)
        user1.watch_movie(movie1)
        review = Review(user1, movie1, "This is a great movie!", 9,
                        date.fromisoformat('2020-03-15'))
        user1.add_review(review)

        assert user1.reviews == [review]
예제 #6
0
 def test_init(self):
     user = User("username", "password")
     movie = Movie("Moana", 2016, 1)
     review_text = "This movie was very enjoyable."
     rating = 8
     review = Review(user, movie, review_text, rating, date.fromisoformat('2020-03-15'))
     assert review.review_author == user
     assert repr(review.movie) == "<Movie Moana, 2016>"
     assert review.review_text == "This movie was very enjoyable."
     assert review.rating == 8
def test_repository_can_add_a_review(session_factory):
    repo = SqlAlchemyRepository(session_factory)
    user = repo.get_user('thorke')
    movie = repo.get_movie_by_index(10)
    review = Review(user=user,
                    movie=movie,
                    review_text='Great!',
                    rating=10,
                    timestamp=date.today())
    assert repo.get_total_number_of_reviews() == 4
    assert review in repo.get_movie_reviews(movie)
    assert review in repo.get_user_reviews(user)
def test_repository_does_not_add_a_review_without_a_movie_properly_attached(
        in_memory_repo):
    user = in_memory_repo.get_user('thorke')
    movie = in_memory_repo.get_movie_by_index(1)
    review = Review(user=user,
                    movie=None,
                    review_text="Awesome!",
                    rating=10,
                    timestamp=date.today())

    with pytest.raises(RepositoryException):
        # Exception expected because the Review doesn't refer to the Movie
        in_memory_repo.add_review(review)
def test_repository_does_not_add_a_review_without_a_user(session_factory):
    repo = SqlAlchemyRepository(session_factory)
    movie = repo.get_movie_by_index(3)
    review = Review(user=None, movie=movie, review_text="testing", rating=6, timestamp=date.today())
    with pytest.raises(RepositoryException):
        repo.add_review(review)