def test_remove_genre(self, movie): genre1 = Genre("Horror") genre2 = Genre("Anthology") movie.add_genre(genre1) movie.add_genre(genre2) movie.remove_genre(genre1) assert movie.genres == [genre2]
def get_movies_for_genres(genres, repo): """ """ movies = set() to_remove = [] for genre in genres: genre_obj = Genre(genre) for movie in repo.get_movies_by_genre(genre_obj): movies.add(movie) for genre in genres: genre_obj = Genre(genre) for movie in movies: if genre_obj not in movie.genres: to_remove.append(movie) for item in to_remove: movies.remove(item) return [utils.movie_to_dict(movie) for movie in movies]
def load_genres(genres: str): """ """ genres_as_str = genres.split(',') movie_genres = [] for genre in genres_as_str: temp_genre = Genre(genre) if temp_genre not in movie_genres: movie_genres.append(temp_genre) if temp_genre not in genres: genres.add(temp_genre) return movie_genres
def read_csv_file(self): with open(self.__file_name, mode='r', encoding='utf-8-sig') as csvfile: movie_file_reader = csv.DictReader(csvfile) index = 0 for row in movie_file_reader: add_rank = row['Rank'] add_title = row['Title'] add_year = int(row['Year']) add_description = row['Description'] add_actors = [] add_genres = [] add_director = "" actors_list = row['Actors'].split(",") for a in actors_list: actor = a.strip() add_actor = Actor(actor) if add_actor not in self._dataset_of_actors: self._dataset_of_actors.append(add_actor) add_actors.append(add_actor) directors_list = row['Director'].split(",") for d in directors_list: add_director = Director(d) if add_director not in self._dataset_of_directors: self._dataset_of_directors.append(add_director) add_director = d genre_list = row['Genre'].split(",") for g in genre_list: add_genre = Genre(g) if add_genre not in self._dataset_of_genres: self._dataset_of_genres.append(add_genre) add_genres.append(add_genre) add_movie = Movie(add_title, add_year, add_rank, add_description, add_director, add_actors, add_genres) self._dataset_of_movies.append(add_movie) index += 1
def read_csv_file(self): with open(self.__file_name, mode='r', encoding='utf-8-sig') as csvfile: movie_file_reader = csv.DictReader(csvfile) for row in movie_file_reader: title = row['Title'] release_year = int(row['Year']) description = row['Description'] time = int(row['Runtime (Minutes)']) movie = Movie(title, release_year) actors1 = row['Actors'].split(",") actors2 = [] for i in actors1: actors2.append(Actor(i)) director = Director(row['Director']) genres1 = row['Genre'].split(",") genres2 = [] for i in genres1: genres2.append(Genre(i)) movie.director = director movie.description = description movie.actors = actors2 movie.genres = genres2 movie.runtime_minutes = time #Adding to datasets self.__dataset_of_movies.append(movie) for actor in actors2: self.__dataset_of_actors.add(actor) self.__dataset_of_directors.add(director) for genre in genres2: self.__dataset_of_genres.add(genre)
def genre(self): """ """ return Genre("Horror")
def test_hash(self, genre): assert hash(genre) == hash(Genre("Horror")) assert hash(genre) != hash(Genre("Kids Film"))
def test_lt(self, genre): assert Genre("Anthology") < genre assert genre < Genre("Kids Film")
def test_eq(self, genre): assert genre == Genre("Horror") assert genre != Genre("Anthology")
def test_genre_name(self, genre): assert genre.genre_name == "Horror" assert Genre("").genre_name is None
def test_repo_can_add_genre(in_memory_repo): genre = Genre('Tom') in_memory_repo.add_genre(genre) assert in_memory_repo.get_genre('Tom') == genre
def test_add_genre(self, movie): genre = Genre("Horror") movie.add_genre(genre) assert movie.genres == [genre]
def test_genres(self, movie): movie.add_genre(Genre("Thriller")) assert movie.genres == [Genre("Thriller")]