def stats(): movie = Movie('Up', 2009) movie.add_actor(Actor("Will Smith")) movie.add_actor(Actor("Daniel Radcliff")) movie.add_genre(Genre("Comedy")) movie.add_genre(Genre("Drama")) director = Director("Peter Jackson") movie.director = director movie1 = Movie('Down', 2013) movie1.add_actor(Actor("Tom Cruise")) movie1.add_actor(Actor("Selena Gomez")) movie1.add_genre(Genre("Comedy")) movie1.add_genre(Genre("Romance")) director = Director("Peter Jackson") movie1.director = director movie2 = Movie('Boom', 1999) movie2.add_actor(Actor("Will Smith")) movie2.add_actor(Actor("Tom Cruise")) movie2.add_genre(Genre("Comedy")) movie2.add_genre(Genre("Action")) director = Director("Taika Waititi") movie2.director = director user = User("aram", "one1") user.watch_movie(movie) user.watch_movie(movie1) user.watch_movie(movie2) stats = Stats(user) return stats
def test_init(): movie1 = Movie("Moana", 2016) assert repr(movie1) == "<Movie Moana, 2016>" movie1.director(Director("Ron Clements")) assert "<Director Ron Clements>" movie2 = Movie("Kung fu Panda", 1821) assert repr(movie2) == "<Movie Kung fu Panda, None>"
def movie_list(): m1 = Movie("Twilight", 2008) m1.add_actor(Actor("Robert Pattinson")) m2 = Movie("Moana", 2016) m2.add_actor(Actor("Dwayne Johnson")) m3 = Movie("Furious 7", 2015) m3.add_actor(Actor("Dwayne Johnson")) m3.add_actor(Actor("Paul Walker")) m3.director = Director("James Wan") m4 = Movie("Furious 6", 2013) m4.add_actor(Actor("Dwayne Johnson")) m4.add_actor(Actor("Paul Walker")) m4.director = Director("Justin Lin") return [m1, m2, m3, m4]
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']) movie = Movie(title, release_year) self.__dataset_of_movies.append(movie) actors = row["Actors"] actors = actors.split(",") for actor in actors: actor = Actor(actor) movie.add_actor(actor) if actor not in self.__dataset_of_actors: self.__dataset_of_actors.append(actor) director = Director(row["Director"]) movie.director = director if director not in self.__dataset_of_directors: self.__dataset_of_directors.append(director) genres = row["Genre"] genres = genres.split(",") for genre in genres: genre = Genre(genre) movie.add_genre(genre) if genre not in self.__dataset_of_genres: self.__dataset_of_genres.append(genre) movie.description = row["Description"] movie.runtime_minutes = row["Runtime (Minutes)"]
def test_setters(self): # inherently tests getters too a_movie = Movie("Back To The Future", 1965) director1 = Director("Brad Bird") a_movie.title = " Mission Impossible: Ghost Protocol " assert a_movie.title == "Mission Impossible: Ghost Protocol" a_movie.title = 15 #assert a_movie.title == "Mission Impossible: Ghost Protocol" a_movie.description = " An action movie " assert a_movie.description == "An action movie" a_movie.director = director1 assert a_movie.director == director1 actor1 = Actor("Tom Cruise") actor2 = Actor("Simon Pegg") a_movie.actors = [actor1, actor2] assert a_movie.actors == [actor1, actor2] genre1 = Genre("Action") genre2 = Genre("Comedy") a_movie.genres = [genre1, genre2] assert a_movie.genres == [genre1, genre2] a_movie.runtime_minutes = 100 assert a_movie.runtime_minutes == 100 assert type(a_movie.runtime_minutes) == int with pytest.raises(ValueError): a_movie.runtime_minutes = 0 a_movie.runtime_minutes = -10
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: title = row['Title'] release_year = int(row['Year']) movie = Movie(title, release_year) for actor in row['Actors'].split(","): actor = Actor(actor.strip()) if actor not in self.__actors: self.__actors.add(actor) movie.add_actor(actor) director = Director(row['Director'].strip()) if director not in self.__directors: self.__directors.add(director) movie.director = director for genre in row['Genre'].split(','): genre = Genre(genre.strip()) if genre not in self.__genres: self.__genres.add(genre) movie.add_genre(genre) movie.runtime_minutes = row["Runtime (Minutes)"] movie.description = row["Description"] self.__movies.append(movie) index += 1
def test_movies(): movie_file_reader = MovieFileCSVReader('test.csv') movie_file_reader.read_csv_file() movie1 = Movie("Guardians of the Galaxy", 2014) movie1.description = "A group of intergalactic criminals are forced to work together to stop a fanatical warrior from taking control of the universe." movie1.runtime_minutes = 121 movie1.votes = 757074 movie1.rating = 8.1 movie1.add_genre(Genre("Action")) movie1.add_genre(Genre("Adventure")) movie1.add_genre(Genre("Sci-Fi")) movie1.add_actor(Actor("Chris Pratt")) movie1.add_actor(Actor("Vin Diesel")) movie1.add_actor(Actor("Bradley Cooper")) movie1.add_actor(Actor("Zoe Saldana")) movie1.director = Director("James Gunn") assert movie_file_reader.dataset_of_movies[0] == movie1 assert movie_file_reader.dataset_of_movies[0].runtime_minutes == movie1.runtime_minutes assert movie_file_reader.dataset_of_movies[0].description == movie1.description assert movie_file_reader.dataset_of_movies[0].votes == movie1.votes assert movie_file_reader.dataset_of_movies[0].rating == movie1.rating assert movie_file_reader.dataset_of_movies[0].actors == movie1.actors assert movie_file_reader.dataset_of_movies[0].genres == movie1.genres assert movie_file_reader.dataset_of_movies[0].director == movie1.director assert movie_file_reader.dataset_of_actors[0] == Actor("Chris Pratt") assert movie_file_reader.dataset_of_actors[1] == Actor("Vin Diesel") assert movie_file_reader.dataset_of_actors[2] == Actor("Bradley Cooper") assert movie_file_reader.dataset_of_actors[3] == Actor("Zoe Saldana") assert repr(movie_file_reader.dataset_of_actors[0].actor_colleague_list) == "[<Actor Vin Diesel>, <Actor Bradley Cooper>, <Actor Zoe Saldana>, <Actor Jennifer Lawrence>, <Actor Michael Sheen>, <Actor Laurence Fishburne>, <Actor Denzel Washington>, <Actor Ethan Hawke>, <Actor Vincent D'Onofrio>, <Actor Bryce Dallas Howard>, <Actor Ty Simpkins>, <Actor Judy Greer>, <Actor Will Ferrell>, <Actor Elizabeth Banks>, <Actor Will Arnett>, <Actor Jessica Chastain>, <Actor Joel Edgerton>, <Actor Mark Strong>, <Actor Channing Tatum>, <Actor Rosario Dawson>, <Actor Jenna Dewan Tatum>]" assert movie_file_reader.dataset_of_directors[0] == Director("James Gunn") assert movie_file_reader.dataset_of_genres[0] == Genre("Action") assert movie_file_reader.dataset_of_genres[1] == Genre("Adventure") assert movie_file_reader.dataset_of_genres[2] == Genre("Sci-Fi")
def test_movie_set_director(self): 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>"
def test_movie_runtime(self): 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 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: movie = Movie(row['Title'], int(row['Year'])) movie.description = row['Description'] movie.runtime_minutes = int(row['Runtime (Minutes)']) director = Director(row['Director']) self.__dataset_of_directors.add(director) movie.director = director parsed_genres = row['Genre'].split(',') for genre_string in parsed_genres: genre = Genre(genre_string) self.__dataset_of_genres.add(genre) movie.add_genre(genre) parsed_actors = row['Actors'].split(',') for actor_string in parsed_actors: actor = Actor(actor_string) self.__dataset_of_actors.add(actor) movie.add_actor(actor) self.__dataset_of_movies.append(movie)
def test_director(): movie1 = Movie("Spirited Away", 2000) movie2 = Movie("Your Name", 2000) movie3 = Movie("Batman", 2000) movie4 = Movie(None, None) movie1.director = Director("BB Huang") assert movie1.director == Director("BB Huang") movie1.director = Director("Jack Huang") assert movie1.director == Director("Jack Huang") movie2.director = "Jack Huang" assert movie2.director == None movie3.director = 123456 assert movie3.director == None movie3.director = None assert movie4.director == None
def test_code_runner(): movie = Movie("Moana", 2016) assert movie.title == "Moana" assert movie.release_year == 2016 director = Director("Ron Clements") movie.director = director assert 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 movie.actors == [ Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison") ] movie.runtime_minutes = 107 assert movie.runtime_minutes == 107
def read_csv_file(self): with open(self.__file_name, mode='r', encoding='utf-8-sig') as csvfile: movie_file_reader_genre = csv.DictReader(csvfile) for row in movie_file_reader_genre: movie = row['Title'] actors = sorted(row['Actors'].strip().split(',')) for i in range(len(actors)): actors[i] = actors[i].strip() director = row['Director'] genres = sorted(row['Genre'].strip().split(',')) for i in range(len(genres)): genres[i] = genres[i].strip() year = int(row['Year'].strip()) description = row['Description'].strip() runtime = int(row['Runtime (Minutes)'].strip()) if self.__genre_type in genres: the_movie = Movie(movie, year) the_director = Director(director) the_movie.director = the_director for i in range(len(actors)): the_actor = Actor(actors[i]) the_movie.actors.append(the_actor) the_movie.description = description the_movie.runtime_minutes = runtime the_movie.director = the_director for i in range(len(genres)): the_genre = Genre(genres[i]) the_movie.genres.append(the_genre) if the_movie not in self.__dataset_of_movies: flag = True for i in range(len(self.__dataset_of_movies)): if the_movie < self.__dataset_of_movies[i]: self.__dataset_of_movies.insert(i, the_movie) flag = False break if flag: self.__dataset_of_movies.insert(i, the_movie) self.__dataset_of_movies.pop()
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: try: rank = int(row['Rank']) except ValueError: rank = None title = row['Title'] genres = row['Genre'].split(',') description = row['Description'] actors = row['Actors'].split(',') try: release_year = int(row['Year']) except ValueError: release_year = None try: run_time = int(row['Runtime (Minutes)']) except ValueError: run_time = None try: rating = int(row['Rating']) except ValueError: rating = 0 try: votes = int(row['Votes']) except ValueError: votes = 0 director = Director(row['Director']) try: revenue = float(row['Revenue (Millions)']) except ValueError: revenue = None try: metascore = int(row['Metascore']) except ValueError: metascore = None mov = Movie(title, release_year) mov.director = director mov.description = description mov.metascore = metascore mov.rank = rank mov.runtime_minutes = run_time mov.rating = rating mov.votes = votes mov.revenue = revenue self.load_actors(mov, actors) if director not in self.__directors: self.__directors.add(director) self.load_genres(mov, genres) if mov not in self.__movies: self.__movies.append(mov)
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: title = row["Title"] release_year = int(row["Year"]) movie = Movie(title, release_year) movie.description = row["Description"] director = row["Director"] movie.director = director if Director(director) not in self.__dataset_of_directors: self.__dataset_of_directors.append(Director(director)) actors = row["Actors"].split(",") for actor in actors: movie.add_actor(Actor(actor)) if Actor(actor) not in self.__dataset_of_actors: self.__dataset_of_actors.append(Actor(actor)) genres = row["Genre"].split(",") for genre in genres: movie.add_genre(Genre(genre)) if Genre(genre) not in self.__dataset_of_genres: self.__dataset_of_genres.append(Genre(genre)) movie.runtime_minutes = int(row["Runtime (Minutes)"]) try: movie.external_rating = float(row["Rating"]) except ValueError: pass try: movie.rating_votes = int(row["Votes"]) except ValueError: pass try: movie.revenue_in_millions = float(row["Revenue (Millions)"]) except ValueError: pass try: movie.metascore = int(row["Metascore"]) except ValueError: pass self.__dataset_of_movies.append(movie) # title = row['Title'] # release_year = int(row['Year']) # print(f"Movie {index} with title: {title}, release year {release_year}") index += 1
def _read_row(self, row: _ROW) -> Movie: """ Helper method to construct a Movie from a row. Raises: ValueError: unable to parse row: {row} """ error = False try: title = row['Title'] genres = [ self._get_genre(Genre(name)) for name in row['Genre'].split(',') ] description = row['Description'] director = self._get_director(Director(row['Director'])) actors = [ self._get_actor(Actor(name)) for name in row['Actors'].split(',') ] release_year = int(row['Year']) runtime_minutes = int(row['Runtime (Minutes)']) rating = float(row['Rating']) votes = int(row['Votes']) revenue_millions = float( row['Revenue (Millions)'] ) if row['Revenue (Millions)'] != 'N/A' else None metascore = int( row['Metascore']) if row['Metascore'] != 'N/A' else None except KeyError: error = True except ValueError: error = True if error: raise ValueError(f'unable to parse row: {row}') movie = Movie(title, release_year) movie.genres = genres movie.description = description movie.director = director movie.actors = actors movie.runtime_minutes = runtime_minutes movie.rating = rating movie.votes = votes if revenue_millions: movie.revenue_millions = revenue_millions if metascore: movie.metascore = metascore return movie
def create_movie_instance(self, row): movie = Movie(row["Title"], int(row["Year"])) movie.director = Director(row["Director"]) movie.runtime_minutes = int(row["Runtime (Minutes)"]) movie.actors = [ Actor(actor.strip()) for actor in row['Actors'].split(",") ] movie.genres = [ Genre(genre.strip()) for genre in row['Genre'].split(",") ] movie.description = row["Description"] return movie
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: try: movie = Movie(row['Title'], int(row['Year'])) except ValueError: print("Invalid release year") else: director = Director(row['Director'].strip()) actors = row['Actors'].split(",") genres = row['Genre'].split(",") movie.director = director if director not in self.__dataset_of_directors: self.__dataset_of_directors.append(director) movie.description = row['Description'].strip() for actor_name in actors: actor_name = actor_name.strip() actor = Actor(actor_name.strip()) if actor in self.dataset_of_actors: i = self.dataset_of_actors.index(actor) actor = self.dataset_of_actors[i] else: self.__dataset_of_actors.append(actor) for actor1_name in actors: actor1_name = actor1_name.strip() if not actor.check_if_this_actor_worked_with(Actor(actor1_name)) and (actor_name != actor1_name): actor.add_actor_colleague(Actor(actor1_name)) movie.add_actor(actor) for genre_name in genres: genre = Genre(genre_name.strip()) movie.add_genre(genre) if genre not in self.__dataset_of_genres: self.__dataset_of_genres.append(genre) try: movie.runtime_minutes = int(row['Runtime (Minutes)']) except ValueError: movie.runtime_minutes = None try: movie.votes = int(row['Votes']) except ValueError: movie.votes = None try: movie.rating = float(row['Rating']) except ValueError: movie.rating = None if movie not in self.__dataset_of_movies: # Check if this takes into account the same movie but different objects self.__dataset_of_movies.append(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) index = 0 for row in movie_file_reader: title = row['Title'] release_year = int(row['Year']) #print(f"Movie {index} with title: {title}, release year {release_year}") m = Movie(title, release_year) m.description = row['Description'] director = Director(row['Director']) try: # if director exists, assign the same director object to the movie index = self.dataset_of_directors.index(director) director = self.dataset_of_directors[index] except ValueError: self.dataset_of_directors.append(director) m.director = director m.votes = int(row['Votes']) m.rating = float(row['Rating']) m.runtime_minutes = int(row['Runtime (Minutes)']) if row['Metascore'] != 'N/A': m.metascore = float(row['Metascore']) if row['Revenue (Millions)'] != 'N/A': m.revenue = float(row['Revenue (Millions)']) for g in row['Genre'].split(","): genre = Genre(g) try: index = self.dataset_of_genres.index(genre) genre = self.dataset_of_genres[index] except ValueError: self.dataset_of_genres.append(genre) m.add_genre(genre) for a in row['Actors'].split(","): actor = Actor(a) try: index = self.dataset_of_actors.index(actor) actor = self.dataset_of_actors[index] except ValueError: self.dataset_of_actors.append(actor) m.add_actor(actor) if m not in self.dataset_of_movies: self.dataset_of_movies.append(m)
def test_init(self): movie1 = Movie("Moana", 2016) #movie1.release_year = 2017 assert repr(movie1) == "<Movie Moana, 2016>" director1 = Director("Ron Clements") movie1.director = director1 the_director = movie1.director assert the_director == director1 print(movie1.director) actors = [Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison")] for actor in actors: movie1.add_actor(actor) print(movie1.actors) movie1.runtime_minutes = 107 print("Movie runtime: {} minutes".format(movie1.runtime_minutes))
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: title = row['Title'] genres = row['Genre'] description = row['Description'] release_year = int(row['Year']) director = row["Director"] actors = row["Actors"] runtime = int(row["Runtime (Minutes)"]) rating = row["Rating"] votes = row["Votes"] revenue = row["Revenue (Millions)"] metascore = row["Metascore"] #print(f"Movie {index} with title: {title}, release year {release_year}") #print(index, title, genre, release_year, director, actors, runtime, rating, votes, revenue, metascore) movie_director = Director(director) movie = Movie(title, release_year) movie.director = movie_director movie.description = description.strip() for actor in actors.split(","): actor = Actor(actor) movie.add_actor(actor) if actor not in self.__dataset_of_actors: self.__dataset_of_actors.append(actor) movie.runtime_minutes = runtime for genre in genres.split(","): genre = Genre(genre) movie.add_genre(genre) if genre not in self.__dataset_of_genres: self.__dataset_of_genres.append(genre) if movie not in self.__dataset_of_movies: self.__dataset_of_movies.append(movie) if movie_director not in self.__dataset_of_directors: self.__dataset_of_directors.append(movie_director) index += 1
def test_movie_set_actors(self): 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 test_basic(): movie = Movie("Moana", 2015) assert str(movie) == "<Movie Moana, 2015>" director = Director("Ron Clements") movie.director = director assert 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 movie.actors == actors movie.runtime_minutes = 107 assert movie.runtime_minutes == 107
def populated_movies(genres, directors, actors): movies = [] for i in range(10): movie = Movie(f'Movie{i}', 2000 + i) movie.genres = [genres[i]] movie.description = f'Description{i}' movie.director = directors[i] movie.actors = [actors[i]] movie.runtime_minutes = i + 1 movie.rating = float(i) movie.votes = i if i % 2 == 0: movie.revenue_millions = float(i + 1) if i % 4 == 0: movie.metascore = i * 10 movies.append(movie) return movies
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: rank = row['Rank'] # make movie from data movie = Movie(row['Title'], int(row['Year'])) movie.description = row['Description'] movie.runtime_minutes = int(row['Runtime (Minutes)']) movie.external_rating = float( row['Rating']) if row['Rating'] != "N/A" else None movie.rating_votes = int( row['Votes']) if row['Votes'] != "N/A" else None movie.revenue = float( row['Revenue (Millions)'] ) if row['Revenue (Millions)'] != "N/A" else None movie.metascore = int( row['Metascore']) if row['Metascore'] != "N/A" else None director = Director(row['Director']) actors = row['Actors'].split(",") genres = row['Genre'].split(",") movie.director = director self._directors.add(director) for actor in actors: actor = Actor(actor) movie.add_actor(actor) self._actors.add(actor) for genre in genres: genre = Genre(genre) movie.add_genre(genre) self._genres.add(genre) self.dataset_of_movies.add(movie)
def test_update(stats): movie2 = Movie('Brain', 2002) movie2.add_actor(Actor("Julia Roberts")) movie2.add_actor(Actor("Tom Cruise")) movie2.add_genre(Genre("Sci-Fi")) movie2.add_genre(Genre("Action")) director = Director("Christopher Nolan") movie2.director = director stats.user.watch_movie(movie2) stats.update_watched_lists() assert stats.user == User("aram", "one1") assert stats.watched_movies == [ Movie("Up", 2009), Movie("Down", 2013), Movie("Boom", 1999), Movie("Brain", 2002) ] assert stats.watched_actors == { Actor("Will Smith"): 2, Actor("Daniel Radcliff"): 1, Actor("Selena Gomez"): 1, Actor("Tom Cruise"): 3, Actor("Julia Roberts"): 1 } assert stats.watched_directors == { Director("Peter Jackson"): 2, Director("Taika Waititi"): 1, Director("Christopher Nolan"): 1 } assert stats.watched_genres == { Genre("Comedy"): 3, Genre("Romance"): 1, Genre("Drama"): 1, Genre("Action"): 2, Genre("Sci-Fi"): 1 }
def test_movies(self): movie = Movie("Moana", 2016) print(movie) movie2 = Movie("Moana", 1901) print(movie.release_year) director = Director("Ron Clements") movie.director = director print(movie.director) actors = [ Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison") ] for actor in actors: movie.add_actor(actor) print(movie.actors) movie.runtime_minutes = 107 print("Movie runtime: {} minutes".format(movie.runtime_minutes))
def test_movie_init_full(self): 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 read_csv_file(self): csv_file_contents = csv.reader(open(self.__file_name, mode='r', encoding='utf-8-sig')) boolean = True for row in csv_file_contents: if boolean: boolean = False continue temp_movie = Movie("","") temp_movie.id = int(row[0])-1 temp_movie.title = row[1] genre_list = row[2].split(",") genre_list = [Genre(genre) for genre in genre_list] temp_movie.genres = genre_list temp_movie.description = row[3] temp_movie.director = Director(row[4]) actor_list = row[5].split(",") actor_list = [Actor(actor) for actor in actor_list] temp_movie.actors = actor_list temp_movie.releaseDate = int(row[6]) temp_movie.runtime_minutes = int(row[7]) temp_movie.rating = float(row[8]) temp_movie.metascore = row[11] self.movie_full_details.append(temp_movie)
def read_csv_file(self) -> None: with open(self.__filename, mode='r', encoding='utf-8-sig') as file_data: reader = csv.DictReader(file_data) self.__dataset_of_movies = list() for row in reader: new_movie = Movie(row['Title'], int(row['Year'])) new_movie.description = row['Description'] new_movie.genres = [ Genre(i.strip()) for i in row['Genre'].split(',') ] new_movie.actors = [ Actor(i.strip()) for i in row['Actors'].split(',') ] new_movie.director = Director(row['Director'].strip()) if row['Runtime (Minutes)'].isdigit(): new_movie.runtime_minutes = int(row['Runtime (Minutes)']) self.__dataset_of_movies.append(new_movie) for i in new_movie.genres: self.add_genre(i) self.__dataset_of_genres[i].append(new_movie) for i in new_movie.actors: self.add_actor(i) self.add_director(new_movie.director)