Add per-episode breakdown to guest-star filmography credits
CI / lint (push) Canceled after 0s
CI / typecheck (push) Canceled after 0s
CI / unit-tests (push) Canceled after 0s
CI / integration-tests (push) Canceled after 0s
CI / container-build (push) Canceled after 0s
CI / dependency-audit (push) Canceled after 0s
CI / lint (push) Canceled after 0s
CI / typecheck (push) Canceled after 0s
CI / unit-tests (push) Canceled after 0s
CI / integration-tests (push) Canceled after 0s
CI / container-build (push) Canceled after 0s
CI / dependency-audit (push) Canceled after 0s
FilmographyCreditOut already aggregated a guest star's episode appearances into one row per series with an episode_count, but never exposed which episodes those were even though the individual episode Credit rows exist in the database. Adds an `episodes` list (season/ episode number, title, air date, sorted chronologically) alongside the existing count -- closes a known limitation tracked in docs/api.md. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
20f5e82d1b
commit
606d2532c4
@@ -57,11 +57,24 @@ async def test_person_credits_include_movies_series_and_aggregated_guest_spots(
|
||||
db_session.add(season)
|
||||
await db_session.flush()
|
||||
|
||||
# Inserted out of episode-number order deliberately, to prove the
|
||||
# aggregated breakdown sorts by (season, episode) rather than insertion
|
||||
# or credit-creation order.
|
||||
episode1 = Episode(
|
||||
series_id=series.id, season_id=season.id, season_number=1, episode_number=1
|
||||
series_id=series.id,
|
||||
season_id=season.id,
|
||||
season_number=1,
|
||||
episode_number=2,
|
||||
title="Second Appearance",
|
||||
air_date=date(2019, 5, 15),
|
||||
)
|
||||
episode2 = Episode(
|
||||
series_id=series.id, season_id=season.id, season_number=1, episode_number=2
|
||||
series_id=series.id,
|
||||
season_id=season.id,
|
||||
season_number=1,
|
||||
episode_number=1,
|
||||
title="First Appearance",
|
||||
air_date=date(2019, 5, 8),
|
||||
)
|
||||
db_session.add_all([episode1, episode2])
|
||||
await db_session.flush()
|
||||
@@ -99,3 +112,10 @@ async def test_person_credits_include_movies_series_and_aggregated_guest_spots(
|
||||
|
||||
guest = next(c for c in series_entries if c.character == "Guest Character")
|
||||
assert guest.episode_count == 2
|
||||
assert len(guest.episodes) == 2
|
||||
assert [e.episode_number for e in guest.episodes] == [1, 2]
|
||||
assert [e.title for e in guest.episodes] == ["First Appearance", "Second Appearance"]
|
||||
assert guest.episodes[0].season_number == 1
|
||||
assert guest.episodes[0].air_date == date(2019, 5, 8)
|
||||
assert guest.episodes[0].id == aurora_id("episode", str(episode2.id))
|
||||
assert guest.episodes[1].id == aurora_id("episode", str(episode1.id))
|
||||
|
||||
Reference in New Issue
Block a user