Пример #1
0
    def test_get_5(self):
        """test GET movies filtered by actor AND genre"""
        alice_in_wonderland = Movie.get_or_create(title='alice in wonderland',
                                                  genre='mystery')

        # this one has the actor we want
        minions = Movie.get_or_create(title='minions', genre='comedy')

        mission_impossible = Movie.get_or_create(title='Mission Impossible',
                                                 genre='action')

        bob = Actor.get_or_create(name='Bob')
        alice = Actor.get_or_create(name='Alice')

        MovieActor.get_or_create(movie_uuid=alice_in_wonderland.uuid,
                                 actor_uuid=alice.uuid)
        MovieActor.get_or_create(movie_uuid=minions.uuid, actor_uuid=bob.uuid)

        MovieActor.get_or_create(movie_uuid=mission_impossible.uuid,
                                 actor_uuid=bob.uuid)

        res = self.test_client.get(
            'http://localhost:5555/movie/?actor=Bob&genre=action')
        self.assertEqual(res.status_code, 200)
        self.assertEqual(len(res.json), 1)
        self.assertEqual(res.json[0].get('title'), 'Mission Impossible')
        self.assertEqual(res.json[0].get('genre'), 'action')
Пример #2
0
 def test_get_3(self):
     """test GET movies filtered by genre if none match the genre"""
     Movie.get_or_create(title='alice in wonderland', genre='mystery')
     Movie.get_or_create(title='minions', genre='comedy')
     res = self.test_client.get('http://localhost:5555/movie/?genre=action')
     self.assertEqual(res.status_code, 200)
     self.assertEqual(len(res.json), 0)
Пример #3
0
    def test_get_2(self):
        """test GET movies filtered by genre"""
        Movie.get_or_create(title='alice in wonderland', genre='mystery')
        minions = Movie.get_or_create(title='minions', genre='comedy')
        res = self.test_client.get('http://localhost:5555/movie/?genre=comedy')
        self.assertEqual(res.status_code, 200)
        all_movies = res.json
        self.assertEqual(len(all_movies), 1)

        self.assertEqual(res.json[0].get('title'), 'minions')
        self.assertEqual(res.json[0].get('genre'), 'comedy')
        self.assertEqual(res.json[0].get('uuid'), str(minions.uuid))
Пример #4
0
    def test_get_1(self):
        """test GET all movies"""
        alice = Movie.get_or_create(title='alice in wonderland',
                                    genre='mystery')
        minions = Movie.get_or_create(title='minions', genre='comedy')
        res = self.test_client.get('http://localhost:5555/movie/')
        self.assertEqual(res.status_code, 200)
        all_movies = res.json

        # sort movies by title
        all_movies.sort(key=lambda t: t.get('title'))

        self.assertEqual(len(all_movies), 2)
        self.assertEqual(all_movies[0].get('title'), 'alice in wonderland')
        self.assertEqual(all_movies[0].get('genre'), 'mystery')
        self.assertEqual(all_movies[0].get('uuid'), str(alice.uuid))

        self.assertEqual(all_movies[1].get('title'), 'minions')
        self.assertEqual(all_movies[1].get('genre'), 'comedy')
        self.assertEqual(all_movies[1].get('uuid'), str(minions.uuid))
    def test_create(self):
        """ new MovieActor will be created when no match already exists"""
        movie = Movie.get_or_create(title='lion king', genre='drama')
        actor = Actor.get_or_create(name='nicole kidman')
        ma = MovieActor.get_or_create(movie_uuid=movie.uuid,
                                      actor_uuid=actor.uuid)

        # implicitly assert that only one record is in the database
        ma_from_db = MovieActor.get()
        self.assertEqual(ma_from_db.uuid, str(ma.uuid))

        # confirm that trying to get or create with the same movies
        # will not create a duplicate:
        ma = MovieActor.get_or_create(movie_uuid=movie.uuid,
                                      actor_uuid=actor.uuid)
        ma_from_db = MovieActor.get()
        self.assertEqual(ma_from_db.uuid, str(ma.uuid))
 def test_bad_actor(self):
     """ cannot create MovieActor record when actor does not exist"""
     movie = Movie.get_or_create(title='lion king', genre='drama')
     with self.assertRaises(ValueError):
         MovieActor.get_or_create(movie_uuid=movie.uuid,
                                  actor_uuid='badvalue')