green: actually delete movies

This commit is contained in:
Colin Goutte 2023-08-26 17:52:39 +02:00
parent 49c1b79329
commit e565b445ff
3 changed files with 17 additions and 1 deletions

View File

@ -49,3 +49,9 @@ def get_movie_by_id(db: Session, id_: str = ""):
except sqlalchemy.exc.NoResultFound:
raise LookupError
return db_movie
def delete_movie_by_id(db: Session, id_: str = ""):
movie = get_movie_by_id(db, id_)
db.delete(movie)
db.commit()

8
dev.py
View File

@ -84,6 +84,14 @@ async def get_movie(id_: str, db: Session = Depends(get_db)):
return out
@app.delete("/movies/{id_}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_movie(id_: str, db: Session = Depends(get_db)):
try:
movie = crud.delete_movie_by_id(db, id_)
except LookupError:
raise HTTPException(status_code=404, detail=f"No movie found with id {id_}")
@app.get("/movies/")
async def list_movie(db: Session = Depends(get_db)):
movies = crud.get_all_movies(db)

View File

@ -51,9 +51,11 @@ def rand_name():
class BaseCrud(unittest.TestCase):
def test_get_movie_404_if_not_found(self):
def test_get_delete_movie_404_if_not_found(self):
response = client.get("/movies/-1")
assert response.status_code == 404
response_delete = client.delete("/movies/-1")
assert response_delete.status_code == 404
def test_create_movie_api(self):
name = f"rand_{random.randint(1, 1000)}"