def test_movie_runtime(): movie = Movie("Moana", 2016) movie.description = " This is a movie " assert movie.description == "This is a movie" movie.director = Director("Ron Clements") assert movie.director.director_full_name is "Ron Clements" assert repr(movie.director) == "<Director Ron Clements>" actors = [ Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison") ] for actor in actors: movie.add_actor(actor) assert repr( movie.actors ) == "[<Actor Auli\'i Cravalho>, <Actor Dwayne Johnson>, <Actor Rachel House>, <Actor Temuera Morrison>]" movie.remove_actor(Actor("Dwayne Johnson")) assert repr( movie.actors ) == "[<Actor Auli\'i Cravalho>, <Actor Rachel House>, <Actor Temuera Morrison>]" genres = [Genre("Animated"), Genre("Comedy")] for genre in genres: movie.add_genre(genre) assert repr(movie.genres) == "[<Genre Animated>, <Genre Comedy>]" movie.remove_genre(Genre("Comedy")) assert repr(movie.genres) == "[<Genre Animated>]" movie.runtime_minutes = 100 assert movie.runtime_minutes is 100
def test_movie_set_actors(): movie = Movie("Moana", 2016) movie.description = " This is a movie " assert movie.description == "This is a movie" movie.director = Director("Ron Clements") assert movie.director.director_full_name is "Ron Clements" assert repr(movie.director) == "<Director Ron Clements>" actors = [Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison")] for actor in actors: movie.add_actor(actor) assert repr(movie.actors) == "[<Actor Auli\'i Cravalho>, <Actor Dwayne Johnson>, <Actor Rachel House>, <Actor Temuera Morrison>]"
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 genre_dict = {} director_dict = {} actor_dict = {} for row in movie_file_reader: movie_id = int(row['id']) movie_title = row['Title'] release_year = int(row['Year']) movie = Movie(movie_id, movie_title, release_year) self.__movies.add(movie) genre = row["Genre"] genres_list = genre.split(",") for genre_name in genres_list: if genre_name not in genre_dict: genre_dict[genre_name] = [movie] else: genre_dict[genre_name] = genre_dict[genre_name] + [movie] des = row['Description'] movie.set_des(des) the_director = row["Director"] if the_director not in director_dict: director_dict[the_director] = [movie] else: director_dict[the_director] = director_dict[the_director] + [movie] actor_list = row["Actors"] for actor in actor_list.split(","): actor = actor.strip() if actor not in actor_dict: actor_dict[actor] = [movie] else: actor_dict[actor] = actor_dict[actor] + [movie] for genre_name in genre_dict: genre = Genre(genre_name) for movie in genre_dict[genre_name]: genre.add_movie(movie) movie.add_genre(genre) self.__genres.add(genre) for director_name in director_dict: director = Director(director_name) for movie in director_dict[director_name]: director.add_dir_movie(movie) movie.director = director self.__directors.add(director) for actor_name in actor_dict: actor = Actor(actor_name) for movie in actor_dict[actor_name]: actor.add_joined_movie(movie) movie.add_actor(actor) self.__actors.add(actor)
def test_movie_init_full(): movie = Movie("Moana", 2016) assert repr(movie) == "<Movie Moana, 2016>" director = Director("Ron Clements") movie.director = director assert repr(movie.director) == "<Director Ron Clements>" actors = [Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison")] for actor in actors: movie.add_actor(actor) assert repr( movie.actors) == "[<Actor Auli\'i Cravalho>, <Actor Dwayne Johnson>, <Actor Rachel House>, <Actor Temuera Morrison>]" movie.runtime_minutes = 107 assert ("Movie runtime: {} minutes".format(movie.runtime_minutes)) == "Movie runtime: 107 minutes"
def load_movies(data_path: str, repo: MemoryRepository): index = 0 for row in read_csv_file(os.path.join(data_path, 'Data1000Movies.csv')): rank = int(row[0]) title = row[1] release_year = int(row[6]) description = row[3] runtime = int(row[7]) movie = Movie(title, release_year) movie.rank = rank movie.description = description movie.runtime_minutes = runtime actors = row[5] actors_list = actors.split(',') for actor in actors_list: movie.add_actor(actor) director = row[4] movie.director = director genres = row[2] genres_list = genres.split(',') for genre in genres_list: movie.add_genre(genre) repo.add_movie(movie) repo.add_movie_rank(rank, movie) repo.add_release_year(release_year) # add movie with same year into movies_with_given_year repo.add_movie_with_release_year(movie, release_year) # add movie with same actor into movies_with_given_actor repo.add_movie_with_actor(movie, actors) # add movie with same director into movies_with_given_director repo.add_movie_with_director(movie, director) # add movie with same genre into movies_with_given_genre repo.add_movie_with_genre(movie, genres_list) #repo.add_movie_details(movie,[description, genres_list, runtime, director, actors_list]) if index > 1000: break index += 1
def add_movie(self, title, year, description, director, actor, genre, runtime, rating, revenue, meta, vote): movie = Movie(title, year) movie.description = description movie.director = Director(director) actors = actor.split(",") for a in actors: movie.add_actor(Actor(a.strip())) genres = genre.split(",") for g in genres: movie.add_genre(Genre(g)) movie.runtime = runtime movie.rating = rating if revenue != "N/A": movie.revenue = float(revenue) if meta != "N/A": movie.meta = int(meta) movie.vote = vote self.dataset_of_movies.append(movie)
def add_movie(self, id, title, year, description, director, actor, genre, runtime, rating, revenue, meta, vote): movie = Movie(title, year) movie.description = description movie.director = [Director(director)] actors = actor.split(",") for a in actors: movie.add_actor(Actor(a.strip())) genres = genre.split(",") for g in genres: movie.add_genre(Genre(g)) movie.runtime = runtime movie.rating = rating if revenue != "N/A": movie.revenue = float(revenue) if meta != "N/A": movie.meta = int(meta) movie.vote = vote movie.id = id with self._session_cm as scm: scm.session.add(movie) scm.commit()