test: align music library status with media existence contract

This commit is contained in:
yanjunpu
2026-09-09 16:39:45 +08:00
parent 395eb3616e
commit 340bafbdaa
2 changed files with 10 additions and 3 deletions

View File

@@ -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(

View File

@@ -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=[
{