def repository(): repo = MemoryRepository() user1 = User("Myles Kennedy", "123") user2 = User("Mark Tremonti", "456") director1 = Director("Taika Waititi") director2 = Director("Steven Speilberg") actor1 = Actor("Chris Pratt") actor2 = Actor("Emma Watson") genre1 = Genre("Comedy") genre2 = Genre("Animation") movie1 = Movie("Moana", 2016) movie2 = Movie("Ice Age", 2002) movie1.director = director1 movie2.director = director2 movie1.add_actor(actor1) movie2.add_actor(actor2) movie1.add_genre(genre1) movie2.add_genre(genre2) review1 = Review(movie1, "very nice", 9) review2 = Review(movie2, "incredible", 10) user1.add_review(review1) user2.add_review(review2) repo.add_movie(movie1) repo.add_movie(movie2) repo.add_director(director1) repo.add_director(director2) repo.add_actor(actor1) repo.add_actor(actor2) repo.add_genre(genre1) repo.add_genre(genre2) repo.add_review(review1) repo.add_review(review2) repo.add_user(user1) repo.add_user(user2) return repo
def read_csv_file(self): with open(self.__file_name, newline="", encoding="utf-8-sig") as csv_file: csv_reader = csv.DictReader(csv_file) for row in csv_reader: movie = Movie(row["Title"], int(row["Year"])) movie.description = row["Description"] movie.runtime_minutes = int(row["Runtime (Minutes)"]) if movie not in self.__dataset_of_movies: self.__dataset_of_movies.append(movie) actors = row["Actors"].split(",") for actor in actors: actor_true = Actor(actor.strip()) if actor_true not in self.__dataset_of_actors: self.__dataset_of_actors.append(actor_true) movie.add_actor(actor_true) director = Director(row["Director"]) movie.director = director if director not in self.__dataset_of_directors: self.__dataset_of_directors.append(director) genres = row["Genre"].split(",") for genre in genres: genre_true = Genre(genre.strip()) if genre_true not in self.__dataset_of_genres: self.__dataset_of_genres.append(genre_true) movie.add_genre(genre_true)
def test_get_movies_by_genre(session_factory): repository = SqlAlchemyRepository(session_factory) movie1 = Movie("Maquia", 2018) movie2 = Movie("Ice Age", 2002) genre1 = Genre("Japanese Anime") genre2 = Genre("Emotional") repository.add_genre(genre1) repository.add_genre(genre2) movie1.description = "The Iorph people live far away from the world of humans, spending their days weaving " \ "Hibiol, a special cloth serving as a written chronicle every time. They age more slowly " \ "than humans and have the capacity to live for hundreds of years." movie1.runtime_minutes = 115 movie2.description = "A Cronopio known as Scrat attempts to find a place to store his acorn for the winter. " \ "Eventually, as he tries to stomp it into the ground, he inadvertently causes a large " \ "crack to form in the ice that extends for miles before setting off a large avalanche " \ "which nearly crushes him." movie2.runtime_minutes = 81 movie1.add_genre(genre1) movie1.add_genre(genre2) movie2.add_genre(genre2) repository.add_movie(movie1) repository.add_movie(movie2) assert repository.get_movies_by_genre("Japanese Anime") == [movie1] assert repository.get_movies_by_genre("xyz") == [] assert repository.get_movies_by_genre("Emotional") == [movie2, movie1] assert repository.get_movies_by_genre(1) == []
def test_movie_remove_genre(): movie1 = Movie("Princess and The Frog", 2009) genre1 = Genre("Animation") genre2 = Genre("Musical") movie1.add_genre(genre1) movie1.add_genre(genre2) movie1.remove_genre(genre1) assert movie1.return_genre() == [genre2]
def test_get_movies_by_genre(repository): movie1 = Movie("Moana", 2016) movie1.add_genre(Genre("Comedy")) movie1.add_genre(Genre("Animated")) movie2 = Movie("Ice Age", 2002) movie2.add_genre(Genre("Animated")) repository.add_movie(movie1) repository.add_movie(movie2) assert repository.get_movies() == [movie2, movie1] assert repository.get_movies_by_genre("Comedy") == [movie1] assert repository.get_movies_by_genre("xyz") == [] assert repository.get_movies_by_genre("Animated") == [movie2, movie1] assert repository.get_movies_by_genre(1) == []
def test_movie_add_genre(): movie1 = Movie("Princess and The Frog", 2009) genre1 = Genre("Animation") movie1.add_genre(genre1) assert movie1.return_genre() == [genre1]