mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-07-01 01:06:32 +08:00
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
from unittest.mock import patch
|
|
|
|
from app.chain.transfer import TransferChain
|
|
from app.core.context import MediaInfo
|
|
from app.core.meta.metabase import MetaBase
|
|
from app.schemas import TransferInfo
|
|
from app.schemas.tmdb import TmdbEpisode
|
|
from app.schemas.types import ContentType, MediaType, NotificationType
|
|
|
|
|
|
def test_send_transfer_message_passes_episode_info_to_template_context() -> None:
|
|
"""
|
|
入库成功通知应把当前季集信息传给消息模板,确保 total_episodes 可渲染。
|
|
"""
|
|
chain = TransferChain()
|
|
meta = MetaBase("Test.Show.S01E01.mkv")
|
|
meta.type = MediaType.TV
|
|
meta.name = "Test Show"
|
|
meta.begin_season = 1
|
|
meta.begin_episode = 1
|
|
episodes_info = [
|
|
TmdbEpisode(episode_number=1, name="第一集"),
|
|
TmdbEpisode(episode_number=2, name="第二集"),
|
|
]
|
|
mediainfo = MediaInfo(
|
|
type=MediaType.TV,
|
|
title="Test Show",
|
|
season=1,
|
|
tmdb_id=12345,
|
|
)
|
|
transferinfo = TransferInfo(success=True)
|
|
|
|
with patch.object(chain, "post_message") as post_message:
|
|
chain.send_transfer_message(
|
|
meta=meta,
|
|
mediainfo=mediainfo,
|
|
transferinfo=transferinfo,
|
|
season_episode="S01 E01",
|
|
episodes_info=episodes_info,
|
|
username="tester",
|
|
)
|
|
|
|
message = post_message.call_args.args[0]
|
|
assert message.mtype == NotificationType.Organize
|
|
assert message.ctype == ContentType.OrganizeSuccess
|
|
assert post_message.call_args.kwargs["episodes_info"] is episodes_info
|
|
assert post_message.call_args.kwargs["season_episode"] == "S01 E01"
|