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_user_watch_movie(): movie1 = Movie("Princess and The Frog", 2009) movie1.runtime_minutes = 98 user1 = User("Jenna da Cruz", "testing123") user1.watch_movie(movie1) assert user1.watched_movies == [movie1] assert user1.time_spent_watching_movies_minutes is 98
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 make_movie(): movie = Movie( "Moana", 2016 ) movie.description = "In Ancient Polynesia, when a terrible curse incurred by the Demigod Maui reaches an " \ "impetuous Chieftain's daughter's island, she answers the Ocean's call to seek out the " \ "Demigod to set things right." movie.runtime_minutes = 107 return movie
def load_movies_and_genres_and_directors_and_actors(data_path, repo): for row in read_csv_file(os.path.join(data_path, 'Data1000Movies.csv')): title = row[1] release_year = int(row[6]) runtime = int(row[7]) description = row[3] genre_list = row[2].split(',') for i in range(len(genre_list)): genre_list[i] = Genre(genre_list[i]) director = Director(row[4]) actor_list = row[5].split(',') for i in range(len(actor_list)): actor_list[i] = Actor(actor_list[i]) for actor_obj in actor_list: for colleague in actor_list: if colleague not in actor_obj.actor_colleagues: actor_obj.add_actor_colleague(colleague) rating = float(row[8]) votes = int(row[9]) if row[10] == "N/A": revenue = "N/A" else: revenue = float(row[10]) if row[11] == "N/A": metascore = "N/A" else: metascore = int(row[11]) id = int(row[0]) # create movie object and assign everything movie = Movie(title, release_year) movie.actors = actor_list movie.genres = genre_list movie.director = director movie.description = description movie.runtime_minutes = runtime movie.rating = rating movie.votes = votes movie.revenue = revenue movie.metascore = metascore movie.id = id repo.add_movie(movie) for genre in movie.genres: repo.add_genre(genre) for actor in movie.actors: repo.add_actor(actor) repo.add_director(movie.director)
def test_add_and_get_movies(session_factory): repository = SqlAlchemyRepository(session_factory) maquia = Movie("Maquia", 2018) iceage = Movie("Ice Age", 2002) maquia.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." maquia.runtime_minutes = 115 iceage.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." iceage.runtime_minutes = 81 repository.add_movie(maquia) repository.add_movie(iceage) repository.add_movie(iceage) assert repository.get_movie("Maquia", 2018) == Movie("Maquia", 2018) assert repository.get_movie("A Silent Voice", 2016) is None movies = repository.get_movies() assert Movie("Ice Age", 2002) in movies and Movie("Maquia", 2018) in movies
def test_movie_fail_runtime_property(): movie1 = Movie("Princess and The Frog", 2009) with pytest.raises(ValueError): movie1.runtime_minutes = -2 assert movie1.runtime_minutes is None
def test_movie_runtime_property(): movie1 = Movie("Princess and The Frog", 2009) movie1.runtime_minutes = 98 assert movie1.runtime_minutes is 98