From 0f183ae08e8bd2ddd3df84c9da677cac46173295 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 5 Jul 2026 14:56:19 +0800 Subject: [PATCH] test: fix download save path fixtures --- .../test_agent_update_download_tasks_tool.py | 22 +++++++++++++++-- tests/test_download_chain.py | 24 ++++++++++++++++++- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/tests/test_agent_update_download_tasks_tool.py b/tests/test_agent_update_download_tasks_tool.py index 4ab3d221..c79438f7 100644 --- a/tests/test_agent_update_download_tasks_tool.py +++ b/tests/test_agent_update_download_tasks_tool.py @@ -4,13 +4,31 @@ from unittest.mock import MagicMock, patch from app.agent.tools.factory import MoviePilotToolFactory from app.agent.tools.impl.update_download_tasks import UpdateDownloadTasksTool -from app.schemas import DownloaderTorrent +from app.schemas import DownloaderTorrent, TransferDirectoryConf -def test_update_download_tasks_resolves_downloader_and_updates_all_supported_fields(): +def _download_dirs(): + """ + 构造允许下载任务修改保存目录的测试下载目录配置。 + """ + return [ + TransferDirectoryConf( + name="本地下载", + priority=1, + storage="local", + download_path="/downloads", + ), + ] + + +def test_update_download_tasks_resolves_downloader_and_updates_all_supported_fields(monkeypatch): """ 未显式传下载器时,应先按 Hash 解析任务所属下载器,再一次性执行多项修改。 """ + monkeypatch.setattr( + "app.helper.directory.DirectoryHelper.get_download_dirs", + lambda _self: _download_dirs(), + ) hash_value = "a" * 40 download_chain = MagicMock() download_chain.list_torrents.return_value = [ diff --git a/tests/test_download_chain.py b/tests/test_download_chain.py index 92721818..2105908e 100644 --- a/tests/test_download_chain.py +++ b/tests/test_download_chain.py @@ -7,7 +7,7 @@ from app.chain.download import DownloadChain from app.core.config import settings from app.core.context import Context, MediaInfo, SubtitleInfo, TorrentInfo from app.core.metainfo import MetaInfo -from app.schemas import FileItem, NotExistMediaInfo +from app.schemas import FileItem, NotExistMediaInfo, TransferDirectoryConf from app.schemas.types import MediaType @@ -43,6 +43,20 @@ class _FakeThreadHelper: self.submitted.append((func, args, kwargs)) +def _download_dirs(): + """ + 构造下载成功路径测试使用的允许下载目录配置。 + """ + return [ + TransferDirectoryConf( + name="本地下载", + priority=1, + storage="local", + download_path="/downloads", + ), + ] + + class _FakeSubtitleStorageChain: """ 模拟字幕 API 保存文件时使用的存储链。 @@ -106,6 +120,10 @@ def test_download_single_submits_download_added_to_background(monkeypatch): 添加下载成功后,站点字幕等后处理应提交到后台,不能阻塞下载接口返回。 """ _FakeThreadHelper.submitted = [] + monkeypatch.setattr( + "app.helper.directory.DirectoryHelper.get_download_dirs", + lambda _self: _download_dirs(), + ) monkeypatch.setattr(download_module, "ThreadHelper", _FakeThreadHelper) monkeypatch.setattr(download_module, "DownloadHistoryOper", _FakeDownloadHistoryOper) monkeypatch.setattr(download_module, "TorrentHelper", _FakeTorrentHelper) @@ -172,6 +190,10 @@ def test_download_single_persists_custom_words_snapshot(monkeypatch): pass _FakeThreadHelper.submitted = [] + monkeypatch.setattr( + "app.helper.directory.DirectoryHelper.get_download_dirs", + lambda _self: _download_dirs(), + ) monkeypatch.setattr(download_module, "ThreadHelper", _FakeThreadHelper) monkeypatch.setattr(download_module, "DownloadHistoryOper", _CapturingDownloadHistoryOper) monkeypatch.setattr(download_module, "TorrentHelper", _FakeTorrentHelper)