Files
MoviePilot/tests/test_discord_file_send.py
DDSRem 2de976f6b3 Merge pull request #7050 from DDSRem-Dev/codex-comment-migration
docs: 统一全项目中文注释和结构化契约说明
2026-10-17 19:26:29 +08:00

37 lines
1.1 KiB
Python

"""
验证 Discord 文件发送通过线程池检查本地文件。
"""
import asyncio
from pathlib import Path
from unittest.mock import AsyncMock
from app.modules.discord.discord import Discord
def test_send_file_checks_local_file_in_threadpool(monkeypatch):
"""
Discord 文件发送应把本地文件检查移出 Discord 事件循环。
"""
discord_client = Discord.__new__(Discord)
channel = AsyncMock()
discord_client._resolve_channel = AsyncMock(return_value=channel)
check_file = AsyncMock(return_value=False)
monkeypatch.setattr("app.modules.discord.discord.run_in_threadpool", check_file)
result = asyncio.run(
discord_client._send_file(
file_path="/tmp/missing.txt",
title="标题",
text=None,
userid="user-1",
file_name=None,
original_chat_id=None,
)
)
assert result == (False, None)
check_file.assert_awaited_once()
assert check_file.await_args.args[1] == Path("/tmp/missing.txt")
channel.send.assert_not_awaited()