fix(async): offload file metadata checks

This commit is contained in:
InfinityPacer
2026-08-23 12:06:52 +08:00
parent 56293bc82a
commit e8cfe272c4
9 changed files with 182 additions and 12 deletions
+25
View File
@@ -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(