def test_get_movies_by_genre(session_factory):
    repository = SqlAlchemyRepository(session_factory)
    movie1 = Movie("Maquia", 2018)
    movie2 = Movie("Ice Age", 2002)
    genre1 = Genre("Japanese Anime")
    genre2 = Genre("Emotional")
    repository.add_genre(genre1)
    repository.add_genre(genre2)
    movie1.description = "The Iorph people live far away from the world of humans, spending their days weaving " \
                         "Hibiol, a special cloth serving as a written chronicle every time. They age more slowly " \
                         "than humans and have the capacity to live for hundreds of years."
    movie1.runtime_minutes = 115
    movie2.description = "A Cronopio known as Scrat attempts to find a place to store his acorn for the winter. " \
                         "Eventually, as he tries to stomp it into the ground, he inadvertently causes a large " \
                         "crack to form in the ice that extends for miles before setting off a large avalanche " \
                         "which nearly crushes him."
    movie2.runtime_minutes = 81
    movie1.add_genre(genre1)
    movie1.add_genre(genre2)
    movie2.add_genre(genre2)
    repository.add_movie(movie1)
    repository.add_movie(movie2)
    assert repository.get_movies_by_genre("Japanese Anime") == [movie1]
    assert repository.get_movies_by_genre("xyz") == []
    assert repository.get_movies_by_genre("Emotional") == [movie2, movie1]
    assert repository.get_movies_by_genre(1) == []
Ejemplo n.º 2
0
def test_user_watch_movie():
    movie1 = Movie("Princess and The Frog", 2009)
    movie1.runtime_minutes = 98
    user1 = User("Jenna da Cruz", "testing123")
    user1.watch_movie(movie1)
    assert user1.watched_movies == [movie1]
    assert user1.time_spent_watching_movies_minutes is 98
Ejemplo n.º 3
0
 def read_csv_file(self):
     with open(self.__file_name, newline="", encoding="utf-8-sig") as csv_file:
         csv_reader = csv.DictReader(csv_file)
         for row in csv_reader:
             movie = Movie(row["Title"], int(row["Year"]))
             movie.description = row["Description"]
             movie.runtime_minutes = int(row["Runtime (Minutes)"])
             if movie not in self.__dataset_of_movies:
                 self.__dataset_of_movies.append(movie)
             actors = row["Actors"].split(",")
             for actor in actors:
                 actor_true = Actor(actor.strip())
                 if actor_true not in self.__dataset_of_actors:
                     self.__dataset_of_actors.append(actor_true)
                 movie.add_actor(actor_true)
             director = Director(row["Director"])
             movie.director = director
             if director not in self.__dataset_of_directors:
                 self.__dataset_of_directors.append(director)
             genres = row["Genre"].split(",")
             for genre in genres:
                 genre_true = Genre(genre.strip())
                 if genre_true not in self.__dataset_of_genres:
                     self.__dataset_of_genres.append(genre_true)
                 movie.add_genre(genre_true)
Ejemplo n.º 4
0
def make_movie():
    movie = Movie(
        "Moana",
        2016
    )
    movie.description = "In Ancient Polynesia, when a terrible curse incurred by the Demigod Maui reaches an " \
                        "impetuous Chieftain's daughter's island, she answers the Ocean's call to seek out the " \
                        "Demigod to set things right."
    movie.runtime_minutes = 107
    return movie
Ejemplo n.º 5
0
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_add_and_get_movies(session_factory):
    repository = SqlAlchemyRepository(session_factory)
    maquia = Movie("Maquia", 2018)
    iceage = Movie("Ice Age", 2002)
    maquia.description = "The Iorph people live far away from the world of humans, spending their days weaving " \
                         "Hibiol, a special cloth serving as a written chronicle every time. They age more slowly " \
                         "than humans and have the capacity to live for hundreds of years."
    maquia.runtime_minutes = 115
    iceage.description = "A Cronopio known as Scrat attempts to find a place to store his acorn for the winter. " \
                         "Eventually, as he tries to stomp it into the ground, he inadvertently causes a large " \
                         "crack to form in the ice that extends for miles before setting off a large avalanche " \
                         "which nearly crushes him."
    iceage.runtime_minutes = 81
    repository.add_movie(maquia)
    repository.add_movie(iceage)
    repository.add_movie(iceage)
    assert repository.get_movie("Maquia", 2018) == Movie("Maquia", 2018)
    assert repository.get_movie("A Silent Voice", 2016) is None
    movies = repository.get_movies()
    assert Movie("Ice Age", 2002) in movies and Movie("Maquia", 2018) in movies
Ejemplo n.º 7
0
def test_movie_fail_runtime_property():
    movie1 = Movie("Princess and The Frog", 2009)
    with pytest.raises(ValueError):
        movie1.runtime_minutes = -2
    assert movie1.runtime_minutes is None
Ejemplo n.º 8
0
def test_movie_runtime_property():
    movie1 = Movie("Princess and The Frog", 2009)
    movie1.runtime_minutes = 98
    assert movie1.runtime_minutes is 98