示例#1
0
def test_movie_less_than_operator():
    movie_1 = Movie(
        "Guardians of the Galaxy", 2014
    )

    movie_2 = Movie(
        "Prometheus", 2012
    )

    assert movie_1 < movie_2
def test_repository_can_retrieve_reviews(in_memory_repo):
    x = memory_repository.MemoryRepository()
    user = User('dave', '123456789')
    x.add_user(user)
    movie = Movie(
        "Prometheus",
        2010,
    )
    another_movie = Movie("It Follows",2014)
    review = make_review("Not good", user, movie, 4, datetime.today())
    in_memory_repo.add_review(review)
    another_review = make_review("awesome", user, another_movie, 10, datetime.today())
    in_memory_repo.add_review(another_review)

    assert len(in_memory_repo.get_reviews()) == 2
def test_repository_does_not_add_a_review_without_a_user():
    movie = Movie(
        "Prometheus",
        2010,
    )
    with pytest.raises(ReviewException):
        review = make_review("Not good", None, movie, 4, datetime.today())
def test_repository_can_add_movie():
    movie = Movie(
        "Prometheus",
        2010,
    )
    x.add_movie(movie)

    assert x.get_movie(movie) is movie
def test_repository_can_add_movie():
    x = memory_repository.MemoryRepository()
    movie = Movie(
        "Prometheus",
        2010,
    )
    x.add_movie(movie)

    assert x.get_movie(movie) is movie
def test_repository_can_get_review_of_movie():
    a_movie = Movie("Guardians of the Galaxy", 2014)
    review_text = "not good"
    rating = 2
    user = User("daneln", "Dane1337")
    review = Review(a_movie, "not good", 2)
    a_review = make_review(review_text, user, a_movie, rating)
    x.add_review(a_review)
    a_reviewer = x.get_review_for_movie(a_movie)
    assert a_reviewer[0] == review
示例#7
0
def add_review(movie: Movie, comment_text: str, rating: int, username: str,
               repo: AbstractRepository):
    # Check that the movie exists.
    movie = repo.get_movie(movie)
    if movie is None:
        raise NonExistentMovieException

    user = repo.get_user(username)

    if user is None:
        raise UnknownUserException

    # Create comment.
    comment = Review(movie, comment_text, rating)
    comment.user = user
    user.add_review(comment)
    movie.add_review(comment)

    # Update the repository.
    repo.add_review(comment)
def test_repository_can_add_a_review():
    x = memory_repository.MemoryRepository()
    user = User('dave', '123456789')
    x.add_user(user)
    movie = Movie(
        "Prometheus",
        2010,
    )
    review = make_review("Not good", user, movie, 4, datetime.today())
    x.add_review(review)

    assert review in x.get_reviews()
def test_repository_can_retrieve_movie():
    a_movie = Movie("Guardians of the Galaxy", 2014)
    a_genre = Genre("Action,Adventure,Sci-Fi")

    movie = x.get_movie(a_movie)

    # Check that the Movie has the expected title.
    assert movie.title == "Guardians of the Galaxy"
    assert movie.release == 2014

    assert str(
        movie.genres) == '[<Genre Action>, <Genre Adventure>, <Genre Sci-Fi>]'
def test_repository_does_not_add_a_review_without_an_movie_properly_attached(in_memory_repo):
    user = User('dave', '123456789')
    in_memory_repo.add_user(user)

    movie = Movie(
        "Prometheus",
        2010,
    )
    review = Review(None,"yeah good", 10)

    with pytest.raises(RepositoryException):
        # Exception expected because the Article doesn't refer to the Comment.
        in_memory_repo.add_review(review)
示例#11
0
def test_cannot_add_comment_for_non_existent_movie(in_memory_repo):
    movie = Movie("not real", 2020)
    review_text = 'Super good movie!'
    username = '******'
    new_username = '******'
    new_password = '******'

    auth_services.add_user(new_username, new_password, in_memory_repo)

    # Call the service layer to attempt to add the comment.
    with pytest.raises(home_services.NonExistentMovieException):
        home_services.add_review(movie, review_text, 10, new_username,
                                 in_memory_repo)
def test_repository_can_retrieve_movie():
    x = memory_repository.MemoryRepository()
    data_path = os.path.join('website', 'datafilereaders', 'datafiles')
    memory_repository.load_movies(data_path, x)
    a_movie = Movie("Guardians of the Galaxy", 2014)
    a_genre = Genre("Action,Adventure,Sci-Fi")

    movie = x.get_movie(a_movie)

    # Check that the Movie has the expected title.
    assert movie.title == "Guardians of the Galaxy"
    assert movie.release == 2014

    assert str(movie.genres) == '[<Genre Action>, <Genre Adventure>, <Genre Sci-Fi>]'
示例#13
0
    def movie_read_csv_file(self):
        with open(os.path.join(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)
                # url = imdb_from_title(title, release_year)
                # movie.image = str(url)
                if movie not in self.__dataset_of_movies:
                    self.__dataset_of_movies.add(movie)
                actors = row['Actors'].split(",")
                for actor in actors:
                    a_actor = Actor(actor)
                    for s_actor in self.__dataset_of_actors:
                        if a_actor == s_actor:
                            movie.add_actor(s_actor)
                metascore = row['Metascore']
                movie.metascore = str(metascore)
                num_of_ratings = row['Votes']
                movie.num_of_ratings = float(num_of_ratings)
                director = row["Director"]
                director1 = Director(director)
                for directors in self.__dataset_of_directors:
                    if director1 == directors:
                        movie.director = directors
                description = row["Description"]
                movie.description = description
                rating = row["Rating"]

                runtime = row["Runtime (Minutes)"]

                movie.runtime_minutes = int(runtime)
                movie.rating = float(rating)
                genres = row["Genre"].split(",")
                for genre in genres:
                    a_genre = Genre(genre)
                    for sgenre in self.__dataset_of_genres:
                        if sgenre == a_genre:
                            movie.add_genre(sgenre)
                index += 1
示例#14
0
def movie():
    return Movie("Guardians of the Galaxy", 2014
    )
示例#15
0
def review():
    movie = Movie("Guardians of the Galaxy", 2014
    )
    return Review(movie, "Terrible movie", 1)
def test_repository_does_not_retrieve_a_non_existent_movie():
    a_movie = Movie("fake movie", 2014)
    movie = x.get_movie(a_movie)
    assert movie is None
def test_repository_movies_have_rating():
    a_movie = Movie("Guardians of the Galaxy", 2014)
    movie = x.get_movie(a_movie)

    assert movie.rating == 8.1