def test_can_retrieve_an_movie_and_add_a_comment_to_it(session_factory): repo = SqlAlchemyRepository(session_factory) # Fetch Movie and User. movie = repo.get_movie(5) author = repo.get_user('thorke') # Create a new Comment, connecting it to the Movie and User. comment = make_comment('First death in Australia', author, movie) movie_fetched = repo.get_movie(5) author_fetched = repo.get_user('thorke') assert comment in movie_fetched.comments assert comment in author_fetched.comments
def test_repository_returns_date_of_next_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(3) next_date = repo.get_date_of_next_movie(movie) assert next_date == 2016
def test_repository_returns_date_of_previous_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(6) previous_date = repo.get_date_of_previous_movie(movie) assert previous_date == 2016
def test_repository_does_not_add_a_comment_without_a_user(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(2) comment = Comment(None, movie, "Trump's onto it!", datetime.today()) with pytest.raises(RepositoryException): repo.add_comment(comment)
def test_repository_returns_none_when_there_are_no_subsequent_movies( session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(100) next_date = repo.get_date_of_next_movie(movie) assert next_date is None
def test_repository_returns_none_when_there_are_no_previous_movies( session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(1) previous_date = repo.get_date_of_previous_movie(movie) assert previous_date is None
def test_repository_can_add_a_comment(session_factory): repo = SqlAlchemyRepository(session_factory) user = repo.get_user('thorke') movie = repo.get_movie(2) comment = make_comment("Trump's onto it!", user, movie) repo.add_comment(comment) assert comment in repo.get_comments()
def test_repository_can_add_movie(session_factory): repo = SqlAlchemyRepository(session_factory) number_of_movies = repo.get_number_of_movies() new_movie_id = number_of_movies + 1 movie = Movie('test movie', 2020, new_movie_id) movie.genres = None movie.actors = None repo.add_movie(movie) assert repo.get_movie(new_movie_id) == movie
def test_repository_can_retrieve_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(1) # Check that the Movie has the expected title. assert movie.title == 'Guardians of the Galaxy' # Check that the Movie is commented as expected. comment_one = [ comment for comment in movie.comments if comment.comment == 'Oh yes, this film has arrived New Zealand' ][0] comment_two = [ comment for comment in movie.comments if comment.comment == 'Yeah Freddie, good news' ][0] assert comment_one.user.username == 'fmercury' assert comment_two.user.username == "thorke" # Check that the Movie is tagged as expected. assert movie.genres == 'Action,Adventure,Sci-Fi'
def test_repository_does_not_retrieve_a_non_existent_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(201) assert movie is None