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_repository_can_add_movie(in_memory_repo): movie = Movie("Fast and furious", 2001) movie.id = 11 in_memory_repo.add_movie(movie) assert in_memory_repo.get_movie_by_id(11) is movie