def test_movie_file_reader_sort_directors(movie_file_reader_prod): movie_file_reader_prod.read_csv_file() all_directors_sorted = sorted(movie_file_reader_prod.dataset_of_directors) assert all_directors_sorted[0:3] == [ Director("Aamir Khan"), Director("Abdellatif Kechiche"), Director("Adam Leon") ]
def test_director_hash(director, director_invalid): directors = [ Director(42), Director("Peter Jackson"), Director("Taika Waititi") ] assert hash(director) == hash(directors[2]) assert hash(director) != hash(directors[1]) assert hash(director_invalid) == hash(directors[0])
def test_director_eq(director, director_invalid): directors = [ Director(42), Director("Peter Jackson"), Director("Taika Waititi") ] assert director_invalid == directors[0] assert director != directors[1] assert director == directors[2]
def test_director_lt(director, director_invalid): directors = [ Director(42), Director("Peter Jackson"), Director("Taika Waititi") ] assert directors[1] < directors[2] assert not director < directors[2] assert director_invalid < director assert not director_invalid < directors[0]
def test_repository_can_get_movies_by_director(in_memory_repo): movie_ranks = in_memory_repo.get_movie_ranks_by_director( Director('James Gunn')) movies = in_memory_repo.get_movies_by_rank(movie_ranks) assert Movie('Guardians of the Galaxy', 2014) in movies assert Movie('Slither', 2006) in movies assert len(movies) == 2 movie_ranks = in_memory_repo.get_movie_ranks_by_director( Director('John Doe')) movies = in_memory_repo.get_movies_by_rank(movie_ranks) assert len(movies) == 0
def test_repository_cannot_add_invalid_review(in_memory_repo): with pytest.raises(RepositoryException): in_memory_repo.add_review(Director('Joe')) with pytest.raises(RepositoryException): in_memory_repo.add_review(Review('', '', 0)) user = User("Martin", "pw12345") movie = Movie('Sing', 2016) review = Review(movie, "This movie was very enjoyable.", 8) review1 = Review(review.movie, review.review_text, review.rating) assert review is not review1 and review.id is not review1.id with pytest.raises(RepositoryException): in_memory_repo.add_review(review) movie.add_review(review) with pytest.raises(RepositoryException): in_memory_repo.add_review(review) review.user = user with pytest.raises(RepositoryException): in_memory_repo.add_review(review) user.add_review(review) with pytest.raises(RepositoryException): in_memory_repo.add_review(review) user.add_review(review1) in_memory_repo.add_review(review1) assert in_memory_repo.get_review(review1.id) is review1
def test_movie_file_reader_movies(movie_from_file): movie = Movie("Guardians of the Galaxy", 2014) director = Director("James Gunn") actor = Actor("Chris Pratt") genre = Genre("Action") assert repr(movie_from_file) == repr(movie) assert repr(movie_from_file.director) == repr(director) assert actor in movie_from_file.actors assert genre in movie_from_file.genres assert movie_from_file.runtime_minutes == 121
def test_repository_can_get_most_common_directors(in_memory_repo): with pytest.raises(RepositoryException): in_memory_repo.get_most_common_directors(0) with pytest.raises(RepositoryException): in_memory_repo.get_most_common_directors('') most_common_directors = in_memory_repo.get_most_common_directors(1) assert Director('James Gunn') in most_common_directors most_common_directors = in_memory_repo.get_most_common_directors(11) assert len(most_common_directors) == 10
def test_repository_cannot_add_invalid_watchlist(in_memory_repo): watchlist = WatchList() watchlist.add_movie(Movie('Guardians of the Galaxy', 2014)) with pytest.raises(RepositoryException): in_memory_repo.add_watchlist(watchlist) with pytest.raises(RepositoryException): in_memory_repo.add_watchlist(Director('Joe')) user = User('John', 'pw0135') user.watchlist.add_movie(Movie('A Movie', 2020)) with pytest.raises(RepositoryException): in_memory_repo.add_watchlist(user.watchlist) user.watchlist.remove_movie(Movie('A Movie', 2020)) in_memory_repo.add_watchlist(user.watchlist)
def test_repository_can_get_director(in_memory_repo): director = in_memory_repo.get_director('James Gunn') assert director == Director('James Gunn')
def test_repository_cannot_add_invalid_director(in_memory_repo): with pytest.raises(RepositoryException): in_memory_repo.add_director(0) with pytest.raises(RepositoryException): in_memory_repo.add_director(Director(''))
def test_repository_can_add_director(in_memory_repo): director = Director("Taika Waititi") in_memory_repo.add_director(director) assert in_memory_repo.get_director(director.director_full_name) is director
def test_repository_cannot_get_actors_with_no_colleagues(in_memory_repo): colleagues = [0, Director('Bob'), 'hello'] actor_with_colleagues = in_memory_repo.get_actors_by_colleagues(colleagues) assert len(actor_with_colleagues) == 0
def director_invalid(): return Director(" ")
def test_repository_cannot_get_movies_with_no_actors(in_memory_repo): actors = [0, Director('Bob'), 'hello'] movie_ranks = in_memory_repo.get_movie_ranks_by_actors(actors) movies_with_actors = in_memory_repo.get_movies_by_rank(movie_ranks) assert len(movies_with_actors) == 0
def test_director_constructor(director, director_invalid): assert repr(director) == "<Director Taika Waititi>" assert repr(director_invalid) == "<Director None>" assert director_invalid.director_full_name is None director3 = Director(42) assert director3.director_full_name is None
def director(): return Director("Taika Waititi")