Green: adapt output schema for 'movie' and 'count'
This commit is contained in:
parent
4acf79a0dd
commit
daec71fe70
7
dev.py
7
dev.py
|
@ -114,8 +114,11 @@ async def delete_movie(id_: str, db: Session = Depends(get_db)) -> None:
|
|||
|
||||
|
||||
@app.get("/movies/")
|
||||
async def list_movie(db: Session = Depends(get_db)) -> list[schemas.MovieObject]:
|
||||
return crud.get_all_movies(db)
|
||||
async def list_movie(db: Session = Depends(get_db)) -> schemas.MovieObjectsOut:
|
||||
movies = crud.get_all_movies(db)
|
||||
count = len(movies)
|
||||
|
||||
return {"movies": movies, "count": count}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
@ -14,3 +14,8 @@ class MoviePayload(BaseModel):
|
|||
|
||||
class MovieObject(MoviePayload):
|
||||
id: int | str
|
||||
|
||||
|
||||
class MovieObjectsOut(BaseModel):
|
||||
movies: list[MovieObject]
|
||||
count: int
|
||||
|
|
|
@ -124,9 +124,9 @@ class BaseCrud(unittest.TestCase):
|
|||
response = client.post("/movies/", json=self.create_payload)
|
||||
assert response.status_code == 200
|
||||
|
||||
movies = client.get("/movies/")
|
||||
movies = client.get("/movies/").json()["movies"]
|
||||
|
||||
movies_by_title = {m["title"]: m for m in movies.json()}
|
||||
movies_by_title = {m["title"]: m for m in movies}
|
||||
found = list(movies_by_title[title] for title in names)
|
||||
assert all(movies_by_title[title] for title in names)
|
||||
|
||||
|
@ -147,12 +147,8 @@ class BaseCrud(unittest.TestCase):
|
|||
|
||||
movies = client.get("/movies/").json()
|
||||
|
||||
assert insinstance(movies["count"], int)
|
||||
assert insinstance(movies["movies"], list)
|
||||
|
||||
movies_by_title = {m["title"]: m for m in movies.json()}
|
||||
found = list(movies_by_title[title] for title in names)
|
||||
assert all(movies_by_title[title] for title in names)
|
||||
assert isinstance(movies["count"], int)
|
||||
assert isinstance(movies["movies"], list)
|
||||
|
||||
|
||||
class ApiTestCase(unittest.TestCase):
|
||||
|
|
|
@ -117,8 +117,8 @@ def test_list_movies():
|
|||
names.append(name)
|
||||
crud.create_movie(db, title=name, genres=["Animated", "Paropaganda"])
|
||||
|
||||
movies = client.get("movies")
|
||||
movies_by_title = {m["title"]: m for m in movies.json()}
|
||||
movies = client.get("movies").json()["movies"]
|
||||
movies_by_title = {m["title"]: m for m in movies}
|
||||
assert all(movies_by_title[name] for name in names)
|
||||
|
||||
|
||||
|
@ -128,16 +128,16 @@ def test_sample_import_toy_story():
|
|||
movie_title = "Toy Story"
|
||||
file_path = "input_data/movies_metadata_short.csv"
|
||||
|
||||
movies = client.get("movies")
|
||||
movies_by_title = {m["title"]: m for m in movies.json()}
|
||||
movies = client.get("movies").json()["movies"]
|
||||
movies_by_title = {m["title"]: m for m in movies}
|
||||
|
||||
assert movie_title not in movies_by_title, "The movie should not be pre existing"
|
||||
|
||||
with db_context() as db:
|
||||
fill_db(db, file_path)
|
||||
|
||||
movies = client.get("movies")
|
||||
movies_by_title = {m["title"]: m for m in movies.json()}
|
||||
movies = client.get("movies").json()["movies"]
|
||||
movies_by_title = {m["title"]: m for m in movies}
|
||||
|
||||
toy_story = movies_by_title["Toy Story"]
|
||||
|
||||
|
@ -156,12 +156,12 @@ def test_title_is_taken_form_original_title_is_missing():
|
|||
|
||||
file_path = "utests/movie_error_missing_title.csv"
|
||||
file_path = "input_data/movies_metadata.csv"
|
||||
movies = client.get("movies")
|
||||
movies_by_title = {m["title"]: m for m in movies.json()}
|
||||
movies = client.get("movies").json()["movies"]
|
||||
movies_by_title = {m["title"]: m for m in movies}
|
||||
|
||||
assert movie_title not in movies_by_title, "The movie should not be pre existing"
|
||||
with db_context() as db:
|
||||
fill_db(db, file_path, sample_rate=1)
|
||||
|
||||
movies = client.get("movies")
|
||||
movies_by_title = {m["title"]: m for m in movies.json()}
|
||||
movies = client.get("movies").json()["movies"]
|
||||
movies_by_title = {m["title"]: m for m in movies}
|
||||
|
|
Loading…
Reference in New Issue