mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
fix(async): offload file metadata checks
This commit is contained in:
@@ -309,6 +309,31 @@ def test_scrape_metadata_rejects_invalid_media_source_before_file_access(tmp_pat
|
||||
assert "media_source" in payload["message"]
|
||||
|
||||
|
||||
def test_scrape_metadata_checks_local_path_in_agent_worker(tmp_path, monkeypatch):
|
||||
"""Agent 刮削的本地路径检查应通过受控存储线程执行。"""
|
||||
calls = []
|
||||
|
||||
async def fake_run_agent_blocking(bucket, func, *args, **kwargs):
|
||||
calls.append((bucket, func, args, kwargs))
|
||||
return False, False
|
||||
|
||||
monkeypatch.setattr("app.agent.tools.base.run_agent_blocking", fake_run_agent_blocking)
|
||||
tool = ScrapeMetadataTool(session_id="session-1", user_id="10001")
|
||||
|
||||
result = asyncio.run(
|
||||
tool.run(path=str(tmp_path / "missing"), storage="local")
|
||||
)
|
||||
|
||||
payload = json.loads(result)
|
||||
assert payload == {
|
||||
"success": False,
|
||||
"message": f"刮削路径不存在: {tmp_path / 'missing'}",
|
||||
}
|
||||
assert len(calls) == 1
|
||||
assert calls[0][0] == "storage"
|
||||
assert calls[0][2] == (tmp_path / "missing",)
|
||||
|
||||
|
||||
def test_query_artist_detail_marks_entity_as_non_subscribable():
|
||||
"""艺术家详情应明确标记为不可订阅,避免 Agent 混入获取流程。"""
|
||||
artist = MusicArtistInfo(
|
||||
|
||||
Reference in New Issue
Block a user