def test_title():
    movie = Movie("   Moana   ", 2016)
    assert repr(movie) == "<Movie Moana, 2016>"

    new_title = "Test title"
    movie.title = new_title
    assert repr(movie) == "<Movie Test title, 2016>"
def test_revenue():
    movie = Movie("Moana", 2016)
    assert movie.revenue == None
    movie.revenue = "N/A"
    assert movie.revenue == None
    movie.revenue = 248.75
    assert movie.revenue == 248.75
def test_runtime_minutes():
    movie = Movie("Moana", 2016)
    with pytest.raises(ValueError):
        movie.runtime_minutes = -1

    movie.runtime_minutes = 107
    assert repr(movie.runtime_minutes) == "107"
def test_less_than():
    movie = Movie("Moana", 2016)
    movie1 = Movie("IT", 2017)
    movie2 = Movie("Joker", 2019)

    assert (movie < movie1) == False
    assert (movie1 < movie2) == True
def test_equal():
    movie = Movie("Moana", 2016)
    movie1 = Movie("IT", 2017)
    movie2 = Movie("Moana", 2016)

    assert (movie == movie1) == False
    assert (movie == movie2) == True
def test_repository_can_add_and_get_movie(in_memory_repo):
    in_memory_repo.add_movie(Movie("Ice Age", 2002))

    assert in_memory_repo.get_movie("Ice Age") == Movie("Ice Age", 2002)

    assert in_memory_repo.get_movie("Guardians of the Galaxy") == Movie(
        "Guardians of the Galaxy", 2014)
def test_movie_less_than_operator():
    movie_1 = Movie("Moana", 2016)
    movie_2 = Movie("Frozen", 2014)
    movie_3 = Movie("Moana", 2020)
    assert (movie_1 < movie_2) is False
    assert (movie_2 < movie_1) is True
    assert (movie_1 < movie_3) is True
    assert (movie_3 < movie_1) is False
def test_movie_equals_operator():
    movie_1 = Movie("Moana", 2016)
    movie_2 = Movie("Frozen", 2014)
    movie_3 = Movie("Moana", 2016)
    movie_4 = Movie("Moana", 2020)
    assert (movie_1 == movie_2) is False
    assert (movie_1 == movie_3) is True
    assert (movie_1 == movie_4) is False
Exemple #9
0
def test_add_review_without_movie_attached(in_memory_repo):
    user = User("Martin", "pw12345")
    review = Review(user, Movie("Guardians of the Galaxy", 2014), "Wow!", 9)
    user.add_review(review)

    with pytest.raises(RepositoryException):
        in_memory_repo.add_review(
            Review(None, Movie("Guardians of the Galaxy", 2014), "Wow!", 9))
def test_movie_genres():
    # correct input
    movie1 = Movie("Moana", 2016)
    movie1.genres = [Genre("Animation"), Genre("Comedy")]
    assert movie1.genres == [Genre("Animation"), Genre("Comedy")]

    # incorrect input
    movie2 = Movie("Frozen", 2014)
def test_movie_actors():
    # correct input
    movie1 = Movie("Moana", 2016)
    movie1.actors = [Actor("Dwayne Johnson"), Actor("Rachel House")]
    assert movie1.actors == [Actor("Dwayne Johnson"), Actor("Rachel House")]

    # incorrect input
    movie2 = Movie("Frozen", 2014)
def test_rating(review, user):
    assert repr(review.rating) == "8"

    review1 = Review(user, Movie("IT", 2017), "Ooo scaryyy", -1)
    assert review1.rating == 0

    review1 = Review(user, Movie("Joker", 2019), "Thrilling", 11)
    assert review1.rating == 10
def test_hash():
    movie = Movie("Moana", 2016)
    movie1 = Movie("IT", 2017)
    movie2 = Movie("Joker", 2019)

    assert hash(movie) == hash("Moana2016")
    assert hash(movie1) == hash("IT2017")
    assert hash(movie2) == hash("Joker2019")
def test_remove_movie(watchlist):
    watchlist.add_movie(Movie("Moana", 2016))
    watchlist.add_movie(Movie("Ice Age", 2002))
    watchlist.add_movie(Movie("Guardians of the Galaxy", 2012))
    watchlist.remove_movie(Movie("Guardians of the Galaxy", 2012))
    assert watchlist.size() == 2

    watchlist.remove_movie(Movie("Guardians of the Galaxy", 2012))
    assert watchlist.size() == 2
Exemple #15
0
def test_watch_list_iter_and_next():
    watchlist9 = WatchList()
    watchlist9.add_movie(Movie("Moana", 2016))
    watchlist9.add_movie(Movie("Transformers", 2007))
    watchlist9.add_movie(Movie("Ice Age", 2002))
    watchlist_iter1 = iter(watchlist9)
    assert repr(next(watchlist_iter1)) == "<Movie Moana, 2016>"
    assert repr(next(watchlist_iter1)) == "<Movie Transformers, 2007>"
    assert repr(next(watchlist_iter1)) == "<Movie Ice Age, 2002>"
Exemple #16
0
def test_add_and_get_movie(in_memory_repo):
    assert in_memory_repo.get_number_of_movies() == 14
    assert in_memory_repo.get_movie("Moana") == Movie("Moana", 2016)

    in_memory_repo.add_movie(Movie("test", 2020))
    assert in_memory_repo.get_movie("test") == Movie("test", 2020)
    assert in_memory_repo.get_number_of_movies() == 15

    assert in_memory_repo.get_movie("test1") == None
def test_first_movie_in_watchlist(watchlist):
    watchlist.add_movie(Movie("Moana", 2016))
    watchlist.add_movie(Movie("Ice Age", 2002))
    watchlist.add_movie(Movie("Guardians of the Galaxy", 2012))

    assert repr(watchlist.first_movie_in_watchlist()) == "<Movie Moana, 2016>"
    watchlist.remove_movie(Movie("Moana", 2016))
    assert repr(
        watchlist.first_movie_in_watchlist()) == "<Movie Ice Age, 2002>"
def test_select_movie_to_watch(watchlist):
    watchlist.add_movie(Movie("Moana", 2016))
    watchlist.add_movie(Movie("Ice Age", 2002))
    watchlist.add_movie(Movie("Guardians of the Galaxy", 2012))

    assert repr(watchlist.select_movie_to_watch(0)) == "<Movie Moana, 2016>"
    assert repr(watchlist.select_movie_to_watch(1)) == "<Movie Ice Age, 2002>"
    assert repr(watchlist.select_movie_to_watch(
        2)) == "<Movie Guardians of the Galaxy, 2012>"
    assert repr(watchlist.select_movie_to_watch(3)) == "None"
def test_movie_year():
    # correct input
    movie1 = Movie("Moana", 2015)
    movie1.year = 2016
    assert movie1.year == 2016

    # incorrect input
    movie2 = Movie("Frozen", 2013)
    movie1.year = "2014"
    assert movie2.year == 2013
Exemple #20
0
def test_repository_does_not_add_a_review_without_a_user(session_factory):
    repo = SqlAlchemyRepository(session_factory)
    movie = Movie("Asdsa", 2014)
    movie.description = "Sam is sam he is"
    movie.director = Director('James')
    movie.runtime_minutes = 140
    repo.add_movie(movie)
    review = Review(None, movie, "Wow", 8, datetime.today())
    with pytest.raises(RepositoryException):
        repo.add_review(review)
Exemple #21
0
def test_movie_less_than_operator():
    movie_1 = Movie(
        date.fromisoformat('2020-03-15'), "None", "None", "None", "None", 0.0, "None", 0, 0, "None", []
    )

    movie_2 = Movie(
        date.fromisoformat('2020-04-20'), "None", "None", "None", "None", 0.0, "None", 0, 0, "None", []
    )

    assert movie_1 < movie_2
def test_repository_can_add_and_get_reviews(in_memory_repo):
    review = Review(User("Bob12", "password888"), Movie("Ice Age", 2002),
                    "Great", 8)
    in_memory_repo.add_review(review)

    reviews = in_memory_repo.get_reviews()
    assert reviews[0].user == User("Bob12", "password888")
    assert reviews[0].movie == Movie("Ice Age", 2002)
    assert reviews[0].review_text == "Great"
    assert reviews[0].rating == 8
Exemple #23
0
    def read_csv_file(self, file_name):
        with open(file_name, mode='r', encoding='utf-8-sig') as csvfile:
            movie_file_reader = csv.DictReader(csvfile)

            for row in movie_file_reader:
                id = int(row['Rank'])
                title = row['Title']
                release_year = int(row['Year'])
                movie = Movie(title, release_year, id)
                self.add_movie(movie)
                actors = row["Actors"]
                actors = actors.split(",")
                for actor in actors:
                    actor = Actor(actor)
                    self.add_actor(actor)
                    actor = self.get_actor(actor.actor_full_name)
                    movie.add_actor(actor)
                    actor.add_movie(movie)

                director = Director(row["Director"])
                self.add_director(director)
                director = self.get_director(director.director_full_name)
                movie.director = director
                director.add_movie(movie)

                genres = row["Genre"]
                genres = genres.split(",")
                for genre in genres:
                    genre = Genre(genre)
                    movie.add_genre(genre)
                    self.add_genre(genre)

                movie.description = row["Description"]
                movie.runtime_minutes = int(row["Runtime (Minutes)"])
def test_movie_concat_string():
    movie1 = Movie("Moana", 2016)
    assert movie1.concat_string() == "Moana2016"
    movie2 = Movie("Moana", "")
    assert movie2.concat_string() == "MoanaNone"
    movie3 = Movie("", 2016)
    assert movie3.concat_string() == "None2016"
def test_movie_repr():
    movie1 = Movie("Moana", 2016)
    movie2 = Movie("Moana", "")
    movie3 = Movie("", 2016)
    assert movie1.__repr__() == "<Movie Moana, 2016>"
    assert movie2.__repr__() == "<Movie Moana, None>"
    assert movie3.__repr__() == "<Movie None, 2016>"
Exemple #26
0
def test_watch_list_next_out_of_range():
    watchlist10 = WatchList()
    watchlist10.add_movie(Movie("Moana", 2016))
    watchlist10.add_movie(Movie("Transformers", 2007))
    watchlist10.add_movie(Movie("Ice Age", 2002))
    watchlist_iter2 = iter(watchlist10)
    assert repr(next(watchlist_iter2)) == "<Movie Moana, 2016>"
    assert repr(next(watchlist_iter2)) == "<Movie Transformers, 2007>"
    assert repr(next(watchlist_iter2)) == "<Movie Ice Age, 2002>"
    with pytest.raises(StopIteration):
        print(next(watchlist_iter2))
def test_watchlist_size():
    watchlist = WatchList()
    assert watchlist.size() == 0
    movie1 = Movie("Moana", 2016)
    movie2 = Movie("Frozen", 2014)
    watchlist.add_movie(movie1)
    assert watchlist.size() == 1
    watchlist.add_movie(movie2)
    assert watchlist.size() == 2
    watchlist.remove_movie(movie1)
    assert watchlist.size() == 1
def test_director():
    movie = Movie("Moana", 2016)
    director = Director("Ron Clements")
    movie.director = director
    assert repr(movie.director) == "<Director Ron Clements>"

    movie.director = "fake imposter director"
    assert repr(movie.director) == "<Director Ron Clements>"

    movie.director = Director("fake imposter director")
    assert repr(movie.director) == "<Director Ron Clements>"
def test_movie_invalid_construction():
    # None inputs
    movie2 = Movie(None, None)
    assert repr(movie2) == "<Movie None, None>"

    # "" and None inputs
    movie3 = Movie("", None)
    assert repr(movie3) == "<Movie None, None>"

    # "correct title, year incorrect
    movie4 = Movie("Moana", 1816)
    assert repr(movie4) == "<Movie Moana, None>"
def test_iterate(watchlist):
    watchlist.add_movie(Movie("Moana", 2016))
    watchlist.add_movie(Movie("Ice Age", 2002))
    watchlist.add_movie(Movie("Guardians of the Galaxy", 2012))

    index = 0
    for movie in watchlist:
        assert repr(movie) == repr(watchlist.select_movie_to_watch(index))
        index += 1

    i = iter(watchlist)
    with pytest.raises(StopIteration):
        next(i)