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

44 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
验证 RSS 工作流动作的输入解析与结果输出。
"""
from datetime import datetime
from unittest.mock import patch
from app.domain.context import TorrentInfo
from app.schemas.workflow import ActionContext
from app.workflow.actions.fetch_rss import FetchRssAction
def test_execute_builds_core_torrent_info_for_downstream_workflow() -> None:
"""
工作流产出的种子信息应使用 core TorrentInfo,避免下载事件下游收到缺少运行时接口的 schema 对象。
"""
rss_items = [
{
"title": "Example RSS Torrent",
"enclosure": "https://example.com/example.torrent",
"link": "https://example.com/details",
"size": 1024,
"pubdate": datetime(2026, 5, 19, 8, 30, 0),
}
]
with (
patch("app.workflow.actions.fetch_rss.RssHelper") as rss_helper,
patch("app.workflow.actions.fetch_rss.runtime_stop_state.is_workflow_stopped", return_value=False),
):
rss_helper.return_value.parse.return_value = rss_items
context = FetchRssAction("fetch-rss").execute(
workflow_id=1,
params={"url": "https://example.com/rss.xml"},
context=ActionContext(),
)
torrent_info = context.torrents[0].torrent_info
assert isinstance(torrent_info, TorrentInfo)
assert torrent_info.category is None
assert callable(getattr(torrent_info, "to_dict", None))
assert "2026-05-19 08:30:00" == torrent_info.pubdate