Files
archived-MoviePilot/tests/test_workflow_fetch_rss.py

48 lines
1.7 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.
import unittest
from datetime import datetime
from unittest.mock import patch
from app.core.context import TorrentInfo
from app.schemas import ActionContext
from app.workflow.actions.fetch_rss import FetchRssAction
class FetchRssActionTest(unittest.TestCase):
"""
RSS 工作流动作测试。
"""
def test_execute_builds_core_torrent_info_for_downstream_workflow(self):
"""
工作流产出的种子信息应使用 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.global_vars.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
self.assertIsInstance(torrent_info, TorrentInfo)
self.assertIsNone(torrent_info.category)
self.assertTrue(callable(getattr(torrent_info, "to_dict", None)))
self.assertEqual("2026-05-19 08:30:00", torrent_info.pubdate)
if __name__ == "__main__":
unittest.main()