fix: loading multiple oscars per movie

This commit is contained in:
ducklet 2024-05-25 18:23:13 +02:00
parent 02a9621734
commit 0a7933bbba
2 changed files with 15 additions and 6 deletions

View file

@ -78,7 +78,10 @@ async def test_get_ratings_for_group_with_awards(
award3 = models.Award(
movie_id=movie1.id, category="oscars", details='{"name":"Best Visual Effects"}'
)
await db.add(conn, award1, award2, award3)
award4 = models.Award(
movie_id=movie1.id, category="oscars", details='{"name":"Best Picture"}'
)
await db.add(conn, award1, award2, award3, award4)
rating = models.Rating(
movie_id=movie1.id, user_id=user.id, score=66, rating_date=datetime.now(tz=UTC)
@ -94,7 +97,11 @@ async def test_get_ratings_for_group_with_awards(
"original_title": movie1.original_title,
"user_scores": [rating.score],
"year": movie1.release_year,
"awards": ["imdb-top-250:23", "oscars:Best Visual Effects"],
"awards": [
"imdb-top-250:23",
"oscars:Best Picture",
"oscars:Best Visual Effects",
],
}
resp = unauthorized_client.get(path)

View file

@ -75,7 +75,9 @@ async def main(args: argparse.Namespace) -> None:
json_file: Path = args.json_file
awards = dict(load_awards(json_file))
awards: dict[types.ImdbMovieId, list[models.Award]] = {}
for imdb_id, award in load_awards(json_file):
awards.setdefault(imdb_id, []).append(award)
async with db.new_connection() as conn:
imdb_ids = list(awards)
available = await db.get_movie_ids(conn, imdb_ids)
@ -91,7 +93,7 @@ async def main(args: argparse.Namespace) -> None:
await remove_all_oscars(conn)
for imdb_id, unwind_id in available.items():
award = awards[imdb_id]
for award in awards[imdb_id]:
award.movie_id = unwind_id
await db.add(conn, award)