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_movie_methods(): #repr movie1 = Movie("Moana", 2016) assert movie1.__repr__() == '<Movie Moana, 2016>' movie2 = Movie("", 2016) assert movie2.__repr__() == '<Movie None, 2016>' movie3 = Movie(24, 2006) assert movie3.__repr__() == '<Movie None, 2006>' movie4 = Movie("Moana", "") assert movie4.__repr__() == '<Movie Moana, None>' movie5 = Movie("Moana", 1888) assert movie5.__repr__() == '<Movie Moana, None>' movie6 = Movie("", "") assert movie6.__repr__() == '<Movie None, None>' #eq movie7 = Movie("Moana", 2016) assert movie1.__eq__(movie7) == True assert movie1.__eq__(movie1) == True assert movie1.__eq__(movie2) == False #lt movie8 = Movie("Moana", 2006) assert movie8.__lt__(movie1) == True assert movie8.__lt__(movie8) == False assert movie1.__lt__(movie8) == False #hash assert hash(movie8) == hash(movie8) assert hash(movie7) == hash(movie1) assert hash(movie8) != hash(movie1) assert hash(movie8) != hash(movie2) #add and remove actor and genres #works #### EXTENSION #### #metascore movie1.metascore = 210 assert movie1.metascore == 210 movie2.metascore = 'lsdflfaskf' assert movie2.metascore == "N/A" movie3.metascore = -123 assert movie3.metascore == 'N/A' #revenue movie1.revenue = 333.13 assert movie1.revenue == 333.13 movie2.revenue = 333 assert movie2.revenue == 333 movie3.revenue = -123 assert movie3.revenue == "N/A" movie4.revenue = 'sadhjkfasdjkfh' assert movie4.revenue == 'N/A' #votes movie1.votes = 132456 assert movie1.votes == 132456 movie2.votes = -456123 assert movie2.votes == None movie3.votes = 'sadfkasdgk' assert movie3.votes == None #rating movie1.rating = 8.1 assert movie1.rating == 8.1 movie2.rating = 8.0 assert movie2.rating == 8.0 movie3.rating = -45 assert movie3.rating == None movie4.rating = 45 assert movie4.rating == None movie5.rating = 'sdjfasdgkfjgkj' assert movie5.rating == None