feat(dot_alfred): load_by_tmdb_id on release repos
Series repo returns (release, folder) so the upcoming sync orchestrator can feed the library index's upsert(..., path=...). Movie repo returns the release alone (folder is on release.folder by the one-folder-one-file convention) — kept as a semantic alias of find_by_tmdb_id for symmetry with the series side.
This commit is contained in:
@@ -90,6 +90,30 @@ class TestSeriesReleaseRepositoryReads:
|
||||
assert len(results) == 1
|
||||
|
||||
|
||||
class TestSeriesReleaseRepositoryLoadByTmdbId:
|
||||
def test_returns_release_and_folder_tuple(
|
||||
self, tv_library, foundation_release
|
||||
):
|
||||
repo = DotAlfredSeriesReleaseRepository(tv_library)
|
||||
repo.save(foundation_release, show_folder="Foundation")
|
||||
result = repo.load_by_tmdb_id(TmdbId(84958))
|
||||
assert result is not None
|
||||
release, folder = result
|
||||
assert release == foundation_release
|
||||
assert folder == "Foundation"
|
||||
|
||||
def test_returns_none_when_tmdb_id_absent(
|
||||
self, tv_library, foundation_release
|
||||
):
|
||||
repo = DotAlfredSeriesReleaseRepository(tv_library)
|
||||
repo.save(foundation_release, show_folder="Foundation")
|
||||
assert repo.load_by_tmdb_id(TmdbId(999999)) is None
|
||||
|
||||
def test_returns_none_on_empty_library(self, tv_library):
|
||||
repo = DotAlfredSeriesReleaseRepository(tv_library)
|
||||
assert repo.load_by_tmdb_id(TmdbId(84958)) is None
|
||||
|
||||
|
||||
class TestSeriesReleaseRepositoryDelete:
|
||||
def test_delete_removes_sidecar(self, tv_library, foundation_release):
|
||||
repo = DotAlfredSeriesReleaseRepository(tv_library)
|
||||
@@ -123,6 +147,20 @@ class TestMovieReleaseRepository:
|
||||
restored = repo.find_by_tmdb_id(TmdbId(27205))
|
||||
assert restored == inception_release
|
||||
|
||||
def test_load_by_tmdb_id_returns_release(
|
||||
self, movie_library, inception_release
|
||||
):
|
||||
repo = DotAlfredMovieReleaseRepository(movie_library)
|
||||
repo.save(inception_release)
|
||||
assert repo.load_by_tmdb_id(TmdbId(27205)) == inception_release
|
||||
|
||||
def test_load_by_tmdb_id_returns_none_when_absent(
|
||||
self, movie_library, inception_release
|
||||
):
|
||||
repo = DotAlfredMovieReleaseRepository(movie_library)
|
||||
repo.save(inception_release)
|
||||
assert repo.load_by_tmdb_id(TmdbId(999999)) is None
|
||||
|
||||
def test_anchor_mismatch_logs_warning(
|
||||
self, movie_library, inception_release, caplog
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user