def test_repository_can_add_a_director(session_factory): repo = SqlAlchemyRepository(session_factory) director = Director("Fred") repo.add_director(director) assert director in repo.get_directors()
def test_repository_returns_an_empty_list_for_non_existent_genre( session_factory): repo = SqlAlchemyRepository(session_factory) movie_ranks = repo.get_movie_ranks_for_genre('United States') assert len(movie_ranks) == 0
def test_repository_returns_an_empty_list_for_non_existent_ids( session_factory): repo = SqlAlchemyRepository(session_factory) movies = repo.get_movies_by_rank([0, 199]) assert len(movies) == 0
def test_repository_can_retrieve_movie_count(session_factory): repo = SqlAlchemyRepository(session_factory) number_of_movies = repo.get_number_of_movies() # Check that the query returned 10 Movies. assert number_of_movies == 10
def test_repository_returns_date_of_previous_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(6) previous_date = repo.get_year_of_previous_movie(movie) assert previous_date == 2016
def test_repository_returns_date_of_next_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(3) next_date = repo.get_year_of_next_movie(movie) assert next_date == 2016
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) == []
def test_repository_does_not_retrieve_movie_for_non_existent_id( session_factory): repo = SqlAlchemyRepository(session_factory) movies = repo.get_movies_by_rank([2, 209]) assert len(movies) == 1 assert movies[0].title == 'Prometheus'
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_year_of_previous_movie(movie) assert previous_date is None
def test_repository_returns_none_when_there_are_no_subsequent_movies( session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(10) next_date = repo.get_year_of_next_movie(movie) assert next_date is None
def test_repository_can_add_a_genre(session_factory): repo = SqlAlchemyRepository(session_factory) genre = Genre('Motoring') genre.tagged_movies = None repo.add_genre(genre) assert genre in repo.get_genres()
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_can_retrieve_a_movie(session_factory): repo = SqlAlchemyRepository(session_factory) movie = repo.get_movie(1) assert movie.title == "Guardians of the Galaxy" assert movie.year == 2014 assert movie.runtime_minutes == 121 assert movie.description == "A group of intergalactic criminals are forced to work together to stop a fanatical warrior from taking control of the universe."
def test_repository_can_get_movies_by_ranks(session_factory): repo = SqlAlchemyRepository(session_factory) movies = repo.get_movies_by_rank([2, 5, 6]) assert len(movies) == 3 assert movies[0].title == 'Prometheus' assert movies[1].title == "Suicide Squad" assert movies[2].title == 'The Great Wall'
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)
def test_get_actors_by_name(session_factory): repository = SqlAlchemyRepository(session_factory) repository.add_actor(Actor("Ikue Ootani")) repository.add_actor(Actor("Ikue Arai")) assert repository.get_actors_by_name("ikue ootani") == [ Actor("Ikue Ootani") ] assert repository.get_actors_by_name("xyz") == [] assert repository.get_actors_by_name("ikue ") == [ Actor("Ikue Arai"), Actor("Ikue Ootani") ] assert repository.get_actors_by_name(1) == []
def test_repository_can_retrieve_movies_by_year(session_factory): repo = SqlAlchemyRepository(session_factory) movies = repo.get_movies_by_year(2014) # Check that the query returned 3 Movies. assert len(movies) == 1 # these movies are no jokes... movies = repo.get_movies_by_year(2012) # Check that the query returned 5 Movies. assert len(movies) == 1
def test_add_and_get_users(session_factory): repository = SqlAlchemyRepository(session_factory) assert repository.get_users() == [] repository.add_user(User("Brian Marshall", "123")) repository.add_user(User("Mark Tremonti", "456")) repository.add_user(User("Mark Tremonti", "456")) assert repository.get_user("Brian Marshall") == User( "Brian Marshall", "123") assert repository.get_user("Scott Phillips") is None assert repository.get_users() == [ User("Brian Marshall", "123"), User("Mark Tremonti", "456") ]
def test_add_and_get_genres(session_factory): repository = SqlAlchemyRepository(session_factory) repository.add_genre(Genre("Japanese Anime")) repository.add_genre(Genre("Japanese Anime")) repository.add_genre(Genre("Emotional")) genres = repository.get_genres() assert Genre("Emotional") in genres and Genre("Japanese Anime") in genres
def test_repository_can_retrieve_genres(session_factory): repo = SqlAlchemyRepository(session_factory) genres = repo.get_genres() assert len(genres) == 14 genre_one = [genre for genre in genres if genre.genre_name == 'Action'][0] genre_two = [genre for genre in genres if genre.genre_name == 'Adventure'][0] genre_three = [genre for genre in genres if genre.genre_name == 'Comedy'][0] genre_four = [genre for genre in genres if genre.genre_name == 'Family'][0] assert genre_one is not None assert genre_two is not None assert genre_three is not None assert genre_four is not None
def test_get_directors_by_name(session_factory): repository = SqlAlchemyRepository(session_factory) repository.add_director(Director("Mari Okada")) repository.add_director(Director("Mari Omada")) assert repository.get_directors_by_name("mari ok") == [ Director("Mari Okada") ] assert repository.get_directors_by_name("xyz") == [] assert repository.get_directors_by_name("mari o") == [ Director("Mari Okada"), Director("Mari Omada") ] assert repository.get_directors_by_name(1) == []
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
def test_add_and_get_reviews(session_factory): repository = SqlAlchemyRepository(session_factory) movie1 = repository.get_movie("Moana", 2016) movie2 = repository.get_movie("Inception", 2010) review1 = Review(movie1, "Very good", 8) review2 = Review(movie2, "Excellent", 10) repository.add_review(review1) repository.add_review(review2) assert repository.get_reviews() == [review1, review2]
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_a_user(session_factory): repo = SqlAlchemyRepository(session_factory) user = User('Dave', '123456789') repo.add_user(user) repo.add_user(User('Martin', '123456789')) user2 = repo.get_user('Dave') assert user2 == user and user2 is user
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 == 'This movie is okay.' ][0] comment_two = [ comment for comment in movie.comments if comment.comment == 'Yeah Freddie, it is good.' ][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_get_movies_by_title(session_factory): repository = SqlAlchemyRepository(session_factory) assert repository.get_movies_by_title("moana") == [Movie("Moana", 2016)] assert repository.get_movies_by_title("xyz") == [] assert repository.get_movies_by_title("avengers") == [ Movie("Avengers: Age of Ultron", 2015), Movie("The Avengers", 2012) ] assert repository.get_movies_by_title(1) == []
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
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)
def test_repository_does_not_add_a_review_without_a_movie_properly_attached( session_factory): repo = SqlAlchemyRepository(session_factory) user = User('aidan', 'hi1234') review = Review(user, None, "Wow good movie", 9, datetime.today()) user.add_review(review) repo.add_user(user) with pytest.raises(RepositoryException): repo.add_review(review)