def test_user(): # add movie user1 = User(' Martin ', 'pw12345') #print(user1.user_name) assert user1.user_name == "martin" user1 = User('Martin', 'pw12345') user2 = User('Ian', 'pw67890') user3 = User('Daniel', 'pw87465') #print(user1) #print(user2) #print(user3) assert repr(user1) == "<User martin>" assert repr(user2) == "<User ian>" assert repr(user3) == "<User daniel>" movie1 = Movie("Up", 2009) movie1.runtime_minutes = 150 user1.watch_movie(movie1) user1.watch_movie(movie1) #print("Watched Movies:", user1.watched_movies) #print("Watching Time:", user1.time_spent_watching_movies_minutes) assert repr(user1.watched_movies) == "[<Movie Up, 2009>]" assert user1.time_spent_watching_movies_minutes == 150 review1 = Review(movie1, "test", 5) user1.add_review(review1) user1.add_review(review1) #print(user1.reviews) assert repr(user1.reviews) == "[<Review <Movie Up, 2009>, test, 5>]"
def test_repository_can_add_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = Movie('Guardians of the Galaxy', 2014) movie.runtime_minutes = 121 movie.actors = [ Actor('Chris Pratt'), Actor('Vin Diesel'), Actor('Bradley Cooper'), Actor('Zoe Saldana') ] movie.genres = [Genre('Action'), Genre('Adventure'), Genre('Sci-Fi')] movie.description = "A group of intergalactic criminals are forced to work together to stop a fanatical warrior from taking control of the universe." movie.director = [Director('James Gunn')] movie.rating = 8.1 movie.meta = 76 movie.revenue = 333.13 movie.vote = 757074 repo.add_movie(1, 'Guardians of the Galaxy', 2014, movie.description, 'James Gunn', 'Chris Pratt, Vin Diesel, Bradley Cooper, Zoe Saldana', 'Action,Adventure,Sci-Fi', movie.runtime_minutes, movie.rating, movie.revenue, movie.meta, movie.vote) assert repo.get_movie("Guardians of the Galaxy") == movie
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_user_construction(user): assert user.user_name == 'martin' assert user.password == 'pw12345' assert repr(user) == '<User martin>' for review in user.reviews: assert False movie = Movie("Moana", 2016) movie.runtime_minutes = 107 user.watch_movie(movie) assert user.time_spent_watching_movies_minutes == 107
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}") movie = Movie(title, release_year) if movie not in self.dataset_of_movies: self.dataset_of_movies.append(movie) actors = row['Actors'].split(",") #print("~~~~~") for actor in range(len(actors)): actors[actor] = Actor(actors[actor].strip()) #added movie.actors.append(actors[actor].actor_full_name) #print(actors[actor].actor_full_name) #end added if actors[actor] not in self.dataset_of_actors: self.dataset_of_actors.add(actors[actor]) #if row['Title'] == "Fury": #print("de", actors[actor]) #print(actors) director = Director(row['Director']) if director not in self.dataset_of_directors: self.dataset_of_directors.add(director) #self.subset_of_movie_directors[str(title)] = [] genres = row['Genre'].split(",") for genre in range(len(genres)): genres[genre] = Genre(genres[genre].strip()) # added movie.genres.append(genres[genre].genre_name) # end added if genres[genre] not in self.dataset_of_genres: self.dataset_of_genres.add(genres[genre]) #self.dataset_of_genres.append( Genre(genres[genre]) ) #print(genres) # added movie.director = row['Director'] movie.description = row['Description'] movie.runtime_minutes = int(row['Runtime (Minutes)']) # end added index += 1
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 movie(): movie = Movie('Guardians of the Galaxy', 2014) movie.runtime_minutes = 121 movie.actors = [ Actor('Chris Pratt'), Actor('Vin Diesel'), Actor('Bradley Cooper'), Actor('Zoe Saldana') ] movie.genres = [Genre('Action'), Genre('Adventure'), Genre('Sci-Fi')] movie.description = "A group of intergalactic criminals are forced to work together to stop a fanatical warrior from taking control of the universe." movie.director = Director('James Gunn') movie.rating = 8.1 movie.meta = 76 movie.revenue = 333.13 movie.vote = 757074 return movie
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