def test_init_and_repr(self): actor1 = Actor("Tom Cruise") assert repr(actor1) == "<Actor Tom Cruise>" actor2 = Actor("") assert actor2.actor_full_name is None actor3 = Actor(42) assert actor3.actor_full_name is None
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_init(self): actor1 = Actor("Angelina Jolie") assert repr(actor1) == "<Actor Angelina Jolie>" actor2 = Actor("") assert actor2.actor_full_name is None actor3 = Actor(42) assert actor3.actor_full_name is None
def test_add_colleague(actor): result = actor.add_actor_colleague("") assert result == -1 assert actor.actor_colleague_list == [] actor1 = Actor("Joe Jonas") result = actor.add_actor_colleague(actor1) assert result == 1 assert actor.actor_colleague_list == [actor1] actor2 = 'Henry Bagel' result = actor.add_actor_colleague(actor2) assert result == -1 assert actor.actor_colleague_list == [actor1] actor3 = Actor("Jane Doe") result = actor.add_actor_colleague(actor3) assert result == 1 assert actor.actor_colleague_list == [actor1, actor3] result = actor.add_actor_colleague(actor1) list1 = [actor1] assert result == 0 assert actor.actor_colleague_list == [actor1, actor3] actor4 = Actor("") actor5 = Actor(45) result = actor.add_actor_colleague(actor4) assert result == 0 result = actor.add_actor_colleague(actor5) assert result == 0 assert len(actor.actor_colleague_list) == 2 assert actor.actor_colleague_list == [actor1, actor3]
def test_incomplete_attributes(): filename = 'datafiles/Data1000Movies.csv' movie_file_reader = MovieFileCSVReader(filename) movie_file_reader.read_csv_file() movie_name = "Hounds of Love" movie = movie_file_reader.movie_object(movie_name) # normal attributes assert movie.title == "Hounds of Love" assert movie.release_year == 2016 assert movie.description == "A cold-blooded predatory couple while cruising the streets in search of their " \ "next victim, will stumble upon a 17-year-old high school girl, who will be sedated, " \ "abducted and chained in the strangers' guest room." assert movie.director == Director("Ben Young") assert movie.actors == [ Actor("Emma Booth"), Actor("Ashleigh Cummings"), Actor("Stephen Curry"), Actor("Susie Porter") ] assert movie.genres == [Genre("Crime"), Genre("Drama"), Genre("Horror")] assert movie.runtime_minutes == 108 # extra attributes assert movie.rank == 23 assert movie.rating == 6.7 assert movie.revenue is None assert movie.votes == 1115 assert movie.metascore == 72
def test_completed_attributes(): filename = 'datafiles/Data1000Movies.csv' movie_file_reader = MovieFileCSVReader(filename) movie_file_reader.read_csv_file() movie_name = "Guardians of the Galaxy" movie = movie_file_reader.movie_object(movie_name) # normal attributes assert movie.title == "Guardians of the Galaxy" assert movie.release_year == 2014 assert movie.description == "A group of intergalactic criminals are forced to work together " \ "to stop a fanatical warrior from taking control of the universe." assert movie.director == Director("James Gunn") assert movie.actors == [ Actor("Chris Pratt"), Actor("Vin Diesel"), Actor("Bradley Cooper"), Actor("Zoe Saldana") ] assert movie.genres == [ Genre("Action"), Genre("Adventure"), Genre("Sci-Fi") ] assert movie.runtime_minutes == 121 # extra attributes assert movie.rank == 1 assert movie.rating == 8.1 assert movie.revenue == 333.13 assert movie.votes == 757074 assert movie.metascore == 76
def test_remove_actor(self): movie1 = Movie("Moana", 2016) movie1.add_actor(Actor("Some Actor")) assert len(movie1.actors) == 1 movie1.remove_actor(Actor("Some Actor")) assert len(movie1.actors) == 0 movie1.remove_actor(Actor("Some Actor"))
def test_more_methods(self): a_movie = Movie("Back To The Future", 1965) actor1 = Actor("Michael J. Fox") actor2 = Actor("Christopher Lloyd") genre1 = Genre("Horror") genre2 = Genre("Comedy") a_movie.add_actor(actor1) assert a_movie.actors == [actor1] a_movie.add_actor(actor1) assert a_movie.actors == [actor1] # test it doesn't add duplicate actors a_movie.add_actor(actor2) assert a_movie.actors == [actor1, actor2] # tests actors are added (and in order, not that it matters) a_movie.remove_actor(actor1) assert a_movie.actors == [actor2] a_movie.remove_actor(5) # test it doesn't throw an error if not an actor assert a_movie.actors == [actor2] # test it doesn't randomly remove an actor (I don't see how but yeah) a_movie.add_genre(genre1) assert a_movie.genres == [genre1] a_movie.add_genre(genre1) assert a_movie.genres == [genre1] # test it doesn't add duplicate actors a_movie.add_genre(genre2) assert a_movie.genres == [genre1, genre2] # tests actors are added (and in order, not that it matters) a_movie.remove_genre(genre1) assert a_movie.genres == [genre2] a_movie.remove_genre(5) # test it doesn't throw an error if not a genre assert a_movie.genres == [genre2] # test it doesn't randomly remove an genre (I don't see how but yeah)
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 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 test_read_csv_file(self): filename = '../datafiles/Data1000Movies.csv' movie_file_reader = MovieFileCSVReader(filename) movie_file_reader.read_csv_file() # check dataset sizes assert len(movie_file_reader.dataset_of_movies) == 1000 assert len(movie_file_reader.dataset_of_actors) == 1985 assert len(movie_file_reader.dataset_of_directors) == 644 assert len(movie_file_reader.dataset_of_genres) == 20 # check assigning of all attributes from CSV to Movie obj movie = movie_file_reader.dataset_of_movies[0] assert movie.title == "Guardians of the Galaxy" assert movie.genres == [ Genre("Action"), Genre("Adventure"), Genre("Sci-Fi") ] assert movie.description == "A group of intergalactic criminals are forced " \ "to work together to stop a fanatical warrior " \ "from taking control of the universe." assert movie.director == Director("James Gunn") assert movie.actors == [ Actor("Chris Pratt"), Actor("Vin Diesel"), Actor("Bradley Cooper"), Actor("Zoe Saldana") ] assert movie.year == 2014 assert movie.runtime_minutes == 121 assert movie.rating == 8.1 assert movie.votes == 757074 assert movie.revenue == 333.13 assert movie.metascore == 76
def test_eq(self): actor1 = Actor("Tom Cruise") actor2 = Actor("Dwayne Johnson") actor3 = Actor("Tom Cruise") assert (actor1 == actor3) == True assert (actor1 == actor2) == False # Yes, I know I could do !=
def test_check_if_this_actor_worked_with(self): actor1 = Actor("Angelina Jolie") actor2 = Actor("Brad Pitt") actor3 = Actor("Not an Actor") actor1.add_actor_colleague(actor2) assert actor1.check_if_this_actor_worked_with(actor2) == True assert actor2.check_if_this_actor_worked_with(actor1) == True assert actor1.check_if_this_actor_worked_with(actor3) == False
def test_actor_init(self): actor1 = Actor("Angelina Jolie") assert actor1.genre_name is "Angelina Jolie" assert repr(actor1) == "<Actor Angelina Jolie>" actor2 = Actor("") assert actor2.genre_name is None actor3 = Actor(42) assert actor3.genre_name is None
def movie(self): movie = Movie("Lady Bug and Bee", 2017) movie.runtime_minutes = 100 movie.director = Director("Dave") movie.add_actor(Actor("Sam")) movie.add_actor(Actor("Cherry")) movie.add_genre(Genre("Kids")) return movie
def test_compare(): actor1 = Actor("Brad Pitt") actor2 = Actor("Brad Pitt") assert actor1 == actor2 actor2 = 4 assert actor1 != actor2 actor1 = Actor("") actor2 = Actor(45) assert actor1 == actor2
def test_equal(self): actor1 = Actor("Angelina Jolie") actor2 = Actor("") actor3 = Actor("Angelina Jolie") actor4 = Actor(5) assert actor1.__eq__(actor2) == False assert actor3.__eq__(actor1) == True assert actor2.__eq__(actor4) == False
def test_remove_people(self, movie): movie.remove_actor(Actor("Sam")) assert movie.actors == [Actor("Cherry")] movie.remove_genre(Genre("Kids")) assert movie.genres == [] movie.remove_genre(Genre("Comedy")) assert movie.genres == [] movie.remove_actor(Actor("Paul")) assert movie.actors == [Actor("Cherry")]
def test_set_people(self, movie): assert movie.actors == [Actor("Sam"), Actor("Cherry")] assert movie.director == Director("Dave") assert movie.runtime_minutes == 100 movie.runtime_minutes = "pam" assert movie.runtime_minutes == 100 assert movie.genres == [Genre("Kids")] movie1 = Movie("Same", 120) assert repr(movie1) == "<Movie Same, None>"
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 test_init(actor): assert actor.actor_full_name == 'Brad Pitt' actor1 = Actor("Brad Pitt") assert repr(actor1) == "<Actor Brad Pitt>" actor2 = Actor("") assert actor2.actor_full_name is None actor3 = Actor(42) assert actor3.actor_full_name is None assert repr(actor2) == "<Actor None>" assert repr(actor3) == "<Actor None>"
def test_init(self): actor1 = Actor("Taika Waititi") assert repr(actor1) == "<Actor Taika Waititi>" actor2 = Actor("") assert actor2.actor_full_name is None actor3 = Actor(3) assert actor3.actor_full_name is None actor1.actor_full_name = "josie" assert actor1.actor_full_name == "josie" assert (actor1 == actor3) == False
def test_actors(self): # correct input movie1 = Movie("Moana", 2016) movie1.actors = [Actor("Dwayne Johnson"), Actor("Rachel House")] assert movie1.actors == [ Actor("Dwayne Johnson"), Actor("Rachel House") ] # incorrect input movie2 = Movie("Frozen", 2014)
def test_actors(): movie1 = Movie("Moana", 2016) actors = [ Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison") ] for actor in actors: movie1.add_actor(actor) assert movie1.actors == actors
def test_init(self): actor1 = Actor("Angelina Jolie") assert actor1.__repr__() == "<Actor Angelina Jolie>" actor2 = Actor("") assert actor2.__repr__() == "<Actor None>" actor3 = Actor(27) assert actor3.__repr__() == "<Actor None>" assert actor1
def test___eq__(self): actor1 = Actor("Angelina Jolie") actor2 = Actor("Angelina Jolie") assert actor1.__eq__(actor2) == True actor1 = Actor("Angelina Jolie") actor2 = Actor("Brad Pitt") assert actor1.__eq__(actor2) == False
def test_init(self): movie = Movie("Moana", 2016) movie1 = Movie("Joana", 2016) assert repr(movie) == "<Movie Moana, 2016>" director = Director("Ron Clements") movie.director = director assert movie.director == "<Director Ron Clements>" assert movie.__eq__(movie1) is False director_list = [Director("James Cameron"), Director("Johnny Big")] movie.director = director_list assert movie.director == "<Director James Cameron>" 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) assert movie.actors == [ Actor("Auli'i Cravalho"), Actor("Dwayne Johnson"), Actor("Rachel House"), Actor("Temuera Morrison") ] assert movie.runtime_minutes is None movie.runtime_minutes = 107 assert movie.runtime_minutes == 107
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_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 test_actors(): aa = Movie("Emu Wars", 2000) actor1 = Actor("Rick Astley") actor2 = Actor("Voldemort") actor3 = Actor("Winnie the Pooh") aa.add_actor(actor1) aa.add_actor(actor2) aa.add_actor(actor2) assert aa.actors == [actor1, actor2] aa.remove_actor(actor1) aa.remove_actor(actor3) assert aa.actors == [actor2]