From 4fac24165853fcc10e1cedc87f974df6381a82aa Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Wed, 12 Aug 2026 20:01:51 +0800 Subject: [PATCH] test(music): isolate external recognition calls (#6277) --- tests/test_music_scrape.py | 21 +++++++++++++++++---- tests/test_music_workflows.py | 9 +++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/tests/test_music_scrape.py b/tests/test_music_scrape.py index 23d24bcb3..5dfb8a5c8 100644 --- a/tests/test_music_scrape.py +++ b/tests/test_music_scrape.py @@ -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") diff --git a/tests/test_music_workflows.py b/tests/test_music_workflows.py index 7f90bdb47..63622dfcf 100644 --- a/tests/test_music_workflows.py +++ b/tests/test_music_workflows.py @@ -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