test: fix download save path fixtures

This commit is contained in:
jxxghp
2026-07-05 14:56:19 +08:00
parent a71d3ea03f
commit 0f183ae08e
2 changed files with 43 additions and 3 deletions

View File

@@ -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 = [

View File

@@ -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)