Files
alfred/tests/application/tv_shows/conftest.py
T
2026-05-26 21:45:11 +02:00

71 lines
2.1 KiB
Python

"""Shared fixtures for ``alfred.application.tv_shows`` tests.
These mirror the v2 dot_alfred conftest (tv_library + foundation_release
+ now_utc) so the sync orchestrator tests can compose against the same
realistic aggregate without cross-package fixture inheritance.
"""
from __future__ import annotations
from datetime import UTC, datetime
import pytest
from alfred.domain.releases_TO_CHECK.entities import (
EpisodeRelease,
SeasonRelease,
SeriesRelease,
TrackProfile,
)
from alfred.domain.releases_TO_CHECK.value_objects import EpisodeRange, ReleaseMode
from alfred.domain.shared_TO_CHECK.media import AudioTrack
from alfred.domain.shared_TO_CHECK.value_objects import FilePath, ImdbId, TmdbId
from alfred.domain.tv_shows.value_objects import EpisodeNumber, SeasonNumber
@pytest.fixture
def tv_library(tmp_path):
"""Empty ``tv_shows/`` with a Foundation/ folder ready for sidecars."""
root = tmp_path / "tv_shows"
root.mkdir()
(root / "Foundation").mkdir()
return root
@pytest.fixture
def foundation_release() -> SeriesRelease:
"""Minimal Foundation S01 PACK — enough for slot-map assertions."""
season = SeasonRelease(
season_number=SeasonNumber(1),
folder="Foundation.S01",
mode=ReleaseMode.PACK,
episodes=(
EpisodeRelease(
episodes=EpisodeRange(EpisodeNumber(1), EpisodeNumber(1)),
file_path=FilePath("Foundation.S01/Foundation.S01E01.mkv"),
tracks=TrackProfile(
audio_tracks=(
AudioTrack(
index=0,
codec="eac3",
channels=6,
channel_layout="5.1",
language="eng",
),
),
),
),
),
)
return SeriesRelease(
tmdb_id=TmdbId(84958),
imdb_id=ImdbId("tt0804484"),
seasons=(season,),
)
@pytest.fixture
def now_utc() -> datetime:
"""Stable UTC reference for deterministic fetched_at fields."""
return datetime(2026, 5, 25, 8, 30, 0, tzinfo=UTC)