Example #1
0
def test_director():
    movie = Movie("Moana", 2016)
    director = Director("Ron Clements")
    movie.director = director
    assert repr(movie.director) == "<Director Ron Clements>"

    movie.director = "fake imposter director"
    assert repr(movie.director) == "<Director Ron Clements>"

    movie.director = Director("fake imposter director")
    assert repr(movie.director) == "<Director Ron Clements>"
Example #2
0
def test_movie_director():
    # correct input
    movie1 = Movie("Moana", 2016)
    director1 = Director("Ron Clements")
    movie1.director = director1
    assert movie1.director == director1

    # incorrect input
    movie2 = Movie("Frozen", 2014)
    movie2.director = "Chris Buck"
    assert movie2.director is None
Example #3
0
    def read_csv_file(self, file_name):
        with open(file_name, mode='r', encoding='utf-8-sig') as csvfile:
            movie_file_reader = csv.DictReader(csvfile)

            for row in movie_file_reader:
                id = int(row['Rank'])
                title = row['Title']
                release_year = int(row['Year'])
                movie = Movie(title, release_year, id)
                self.add_movie(movie)
                actors = row["Actors"]
                actors = actors.split(",")
                for actor in actors:
                    actor = Actor(actor)
                    self.add_actor(actor)
                    actor = self.get_actor(actor.actor_full_name)
                    movie.add_actor(actor)
                    actor.add_movie(movie)

                director = Director(row["Director"])
                self.add_director(director)
                director = self.get_director(director.director_full_name)
                movie.director = director
                director.add_movie(movie)

                genres = row["Genre"]
                genres = genres.split(",")
                for genre in genres:
                    genre = Genre(genre)
                    movie.add_genre(genre)
                    self.add_genre(genre)

                movie.description = row["Description"]
                movie.runtime_minutes = int(row["Runtime (Minutes)"])
Example #4
0
def test_init():
    movie = Movie("Moana", 2016)
    assert repr(movie) == "<Movie Moana, 2016>"

    assert movie.title == "Moana"

    movie1 = Movie("", "1")
    assert repr(movie1) == "<Movie None, None>"

    director = Director("Ron Clements")
    movie.director = director
    assert repr(movie.director) == "<Director Ron Clements>"

    movie.description = "Moana, daughter of chief Tui, embarks on a journey to return the heart of goddess Te Fitti from Maui, a demigod, after the plants and the fish on her island start dying due to a blight."
    assert movie.description == "Moana, daughter of chief Tui, embarks on a journey to return the heart of goddess Te Fitti from Maui, a demigod, after the plants and the fish on her island start dying due to a blight."

    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 repr(movie.runtime_minutes) == "107"
Example #5
0
def dict_to_movie(dict):
    movie = Movie(dict.title, dict.release)
    movie.description = dict.description
    movie.director = dict.director
    movie.actors = dict.actors
    movie.genres = dict.genres
    movie.runtime_minutes = dict.runtime
    movie.revenue = dict.revenue
Example #6
0
def test_repository_does_not_add_a_review_without_a_user(session_factory):
    repo = SqlAlchemyRepository(session_factory)
    movie = Movie("Asdsa", 2014)
    movie.description = "Sam is sam he is"
    movie.director = Director('James')
    movie.runtime_minutes = 140
    repo.add_movie(movie)
    review = Review(None, movie, "Wow", 8, datetime.today())
    with pytest.raises(RepositoryException):
        repo.add_review(review)
Example #7
0
def test_repository_can_add_a_movie(session_factory):
    repo = SqlAlchemyRepository(session_factory)

    movie1 = Movie("Sam I am", 2000)
    movie1.description = "Sam is sam he is"
    movie1.director = Director('James')
    movie1.runtime_minutes = 140
    repo.add_movie(movie1)
    movie = repo.get_movie(1001)

    assert movie == Movie('Sam I am', 2000)
Example #8
0
def test_repository_can_add_a_review(session_factory):
    repo = SqlAlchemyRepository(session_factory)
    user = User('aidan', 'hi1234')
    movie = Movie("Asdsa", 2014)
    movie.description = "Sam is sam he is"
    movie.director = Director('James')
    movie.runtime_minutes = 140
    review = make_review("Wow good movie", user, movie, 9)

    repo.add_user(user)
    repo.add_movie(movie)
    repo.add_review(review)

    reviews = repo.get_reviews()
    assert len(reviews) == 1
    assert review in reviews
Example #9
0
    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']

                movie.director = Director(row['Director'])
                if Director(
                        row['Director']) not in self.__dataset_of_directors:
                    self.__dataset_of_directors.append(
                        Director(row['Director']))

                for actor in row['Actors'].split(','):
                    movie.add_actor(Actor(actor))
                    if Actor(actor) not in self.dataset_of_actors:
                        self.dataset_of_actors.append(Actor(actor))

                for genre in row['Genre'].split(','):
                    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.revenue = float(row['Revenue (Millions)'])
                except:
                    pass

                self.__dataset_of_movies.append(movie)