def test_delete_movie_executive_producer_success(self): total_movies_before = len(Movie.query.all()) movie = Movie() movie.title = 'Action Filled Movie' movie.genre = 'Action' movie.insert() total_movies_after = len(Movie.query.all()) self.assertEqual(total_movies_after, total_movies_before + 1) res = self.client().delete('/movies/' + str(movie.id), headers={ "Authorization": "Bearer {}".format( self.executive_producer) }) data = json.loads(res.data) total_movies_after = len(Movie.query.all()) self.assertEqual(data['success'], True) self.assertEqual(data['delete'], movie.id) self.assertEqual(res.status_code, 200) self.assertEqual(total_movies_after, total_movies_before)
def test_delete_movie_casting_director_not_authorized(self): movie = Movie() movie.title = 'Action Filled Movie' movie.genre = 'Action' movie.insert() res = self.client().delete('/movies/' + str(movie.id), headers={ "Authorization": "Bearer {}".format( self.casting_director) }) data = json.loads(res.data) self.assertEqual(data['success'], False) self.assertEqual(data['error'], 401) self.assertEqual(data['message'], 'Permission not found') self.assertEqual(res.status_code, 401)
def post(self): """Create new movie""" data = request.get_json() # 1. validate genre, return 404 if invalid genre = Genre.query.get(data["genre"]) if genre is None: # return 404 return {"message": "The given genre ID does not exist."}, 404 # 2. create new movie instance movie = Movie() movie.title = data["title"] movie.year = data["year"] # movie.genre_id = data["genre"] movie.genre = genre # 3. add instance to session, and commit db.session.add(movie) db.session.commit() # 4. return new created movie return {"movie": movie.to_json()}, 201
def test_update_movie_executive_producer_success(self): movie = Movie() movie.title = 'Action Filled Movie' movie.genre = 'Action' movie.insert() update_movie = {'genre': 'Adventure'} res = self.client().patch('/movies/' + str(movie.id), headers={ "Authorization": "Bearer {}".format( self.executive_producer) }, json=update_movie) data = json.loads(res.data) self.assertEqual(data['success'], True) self.assertEqual(data['movie'][0]['genre'], 'Adventure') self.assertEqual(res.status_code, 200)