feat(music): 自动整理时媒体类型判别

This commit is contained in:
jxxghp
2026-08-11 19:08:05 +08:00
parent 166d995f81
commit 7597c21872
10 changed files with 314 additions and 159 deletions
+9 -10
View File
@@ -84,12 +84,12 @@ def test_scrape_rejects_media_id_without_source() -> None:
def test_recognize_file_routes_audio_to_music_chain() -> None:
"""文件管理识别音频文件时应返回音乐专属上下文。"""
music_chain = Mock()
music_chain.async_recognize_by_path = AsyncMock(
return_value=(
MetaMusic(title="晴天", artists=["周杰伦"]),
MusicInfo(
"""文件管理识别音频文件时应经统一路径识别入口返回音乐专属上下文。"""
chain = Mock()
chain.async_recognize_by_path = AsyncMock(
return_value=Context(
meta_info=MetaMusic(title="晴天", artists=["周杰伦"]),
media_info=MusicInfo(
source="musicbrainz",
media_id="977e6978-139d-425c-bb98-6b0c62d1e45e",
title="晴天",
@@ -100,14 +100,13 @@ def test_recognize_file_routes_audio_to_music_chain() -> None:
import asyncio
with patch("app.api.endpoints.media.MusicChain", return_value=music_chain):
with patch("app.api.endpoints.media.MediaChain", return_value=chain):
result = asyncio.run(recognize_file(path="/music/晴天.flac", _=Mock()))
assert result["meta_info"]["type"] == "音乐"
assert result["media_info"]["title"] == "晴天"
music_chain.async_recognize_by_path.assert_awaited_once_with(
path="/music/晴天.flac",
source="musicbrainz",
chain.async_recognize_by_path.assert_awaited_once_with(
"/music/晴天.flac", source=None
)