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
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
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>"
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
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)
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
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>"
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)