From 340bafbdaae09ff228c7f71ed0b1cd12186db2d8 Mon Sep 17 00:00:00 2001 From: yanjunpu <541726449@qq.com> Date: Wed, 9 Sep 2026 16:39:45 +0800 Subject: [PATCH] test: align music library status with media existence contract --- app/api/endpoints/music.py | 2 +- tests/test_music_endpoint.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/api/endpoints/music.py b/app/api/endpoints/music.py index 1634eebe5..6ff432d67 100644 --- a/app/api/endpoints/music.py +++ b/app/api/endpoints/music.py @@ -303,7 +303,7 @@ def music_library_status( # 是“已存在/已入库”,无曲数时一首匹配曲目即足以阻止重复下载。 expected_tracks = info.total_tracks or 1 info.total_tracks = expected_tracks - exists = bool(media_chain.media_exists(mediainfo=info)) # type: ignore[arg-type] + exists = media_chain.media_exists(mediainfo=info) is not None # type: ignore[arg-type] assert item.media_source is not None assert item.media_id is not None statuses.append( diff --git a/tests/test_music_endpoint.py b/tests/test_music_endpoint.py index e801d4660..e916f9bdb 100644 --- a/tests/test_music_endpoint.py +++ b/tests/test_music_endpoint.py @@ -16,6 +16,7 @@ from app.api.endpoints.music import ( recognize_music, ) from app.domain.context import MusicAlbumInfo, MusicArtistInfo, MusicInfo, MusicRelease +from app.schemas.mediaserver import ExistMediaInfo from app.schemas.music import MusicLibraryStatusRequest, MusicRecognizeRequest from app.schemas.types import MediaSource, MediaType @@ -461,7 +462,10 @@ def test_music_artist_albums_forwards_pagination_and_type(): def test_music_library_status_marks_existing_albums(): """批量状态接口应保留专辑身份,并根据入库检查返回状态。""" media_chain = Mock() - media_chain.media_exists.side_effect = [object(), None] + media_chain.media_exists.side_effect = [ + ExistMediaInfo(type=MediaType.MUSIC, itemid="library-album-1"), + None, + ] request = MusicLibraryStatusRequest( items=[ { @@ -498,7 +502,10 @@ def test_music_library_status_marks_existing_albums(): def test_music_library_status_treats_release_group_without_track_count_as_existing(): """Release Group 无曲数时应查询“是否存在”,而不是永久返回未入库。""" media_chain = Mock() - media_chain.media_exists.return_value = object() + media_chain.media_exists.return_value = ExistMediaInfo( + type=MediaType.MUSIC, + itemid="library-release-group-1", + ) request = MusicLibraryStatusRequest( items=[ {