test(music): isolate external recognition calls (#6277)

This commit is contained in:
InfinityPacer
2026-08-12 20:01:51 +08:00
committed by GitHub
parent ca32922a7f
commit 4fac241658
2 changed files with 24 additions and 6 deletions

View File

@@ -80,14 +80,27 @@ def test_album_directory_scrape_processes_each_track_and_reuses_cover() -> None:
)
album = _album_info()
success, message = chain.scrape_music_metadata(
FileItem(storage="local", path="/music/叶惠美", type="dir", name="叶惠美"),
mediainfo=album,
)
with patch(
"app.chain.scraping.MediaChain.get_music_album",
return_value=None,
) as get_music_album:
success, message = chain.scrape_music_metadata(
FileItem(
storage="local",
path="/music/叶惠美",
type="dir",
name="叶惠美",
),
mediainfo=album,
)
assert success is True
assert message == "已刮削 2 个音频文件"
chain._download_music_cover.assert_called_once_with(album.cover_url)
get_music_album.assert_called_once_with(
media_source=album.media_source,
media_id=album.media_id,
)
assert chain._scrape_music_file.call_count == 2
assert all(
call.args[1] is album and call.kwargs["cover"] == (b"cover", "image/jpeg")

View File

@@ -361,7 +361,8 @@ def test_media_chain_default_recognition_only_queries_musicbrainz(monkeypatch):
recognize_source = Mock(return_value=expected)
monkeypatch.setattr(chain, "recognize_music_from_source", recognize_source)
result = chain.recognize_media(meta=meta)
with patch("app.chain.MoviePilotServerHelper.report_recognize_share"):
result = chain.recognize_media(meta=meta)
assert result is expected
recognize_source.assert_called_once_with(
@@ -408,7 +409,11 @@ def test_default_recognition_does_not_fallback_after_musicbrainz_miss(monkeypatc
recognize_source = Mock(return_value=None)
monkeypatch.setattr(chain, "recognize_music_from_source", recognize_source)
assert chain.recognize_media(meta=meta) is None
with patch(
"app.chain.MoviePilotServerHelper.query_recognize_share",
return_value=None,
):
assert chain.recognize_media(meta=meta) is None
recognize_source.assert_called_once()
assert recognize_source.call_args.kwargs["media_source"] == MediaSource.MusicBrainz