Files
astrbot_plugin_bangumi/tests/test_subject_renderer.py
chenxiangtong a05ce6e07e fork
2026-03-26 17:38:47 +08:00

73 lines
3.4 KiB
Python

import pytest
from loguru import logger
from src.render import SubjectRenderer
@pytest.mark.asyncio
async def test_render_subject_card_success() -> None:
# 准备测试数据
subject_data = {
"date": "2026-01-11",
"platform": "TV",
"images": {
"small": "https://lain.bgm.tv/r/200/pic/cover/l/71/50/525565_OxOv7.jpg",
"grid": "https://lain.bgm.tv/r/100/pic/cover/l/71/50/525565_OxOv7.jpg",
"large": "https://lain.bgm.tv/pic/cover/l/71/50/525565_OxOv7.jpg",
"medium": "https://lain.bgm.tv/r/800/pic/cover/l/71/50/525565_OxOv7.jpg",
"common": "https://lain.bgm.tv/r/400/pic/cover/l/71/50/525565_OxOv7.jpg",
},
"summary": "总是活力充沛,却又很在意周遭目光的女孩:铃木实优\r\n以及个性文静,却能清楚表达自己意见的男生:谷悠介\r\n\r\n本次故事将讲述这两人的生活点滴。铃木喜欢着谷,却一直无法鼓起勇气告白。直到某天,两人放学回家时走在同一条路上并牵起了手。借由该契机,两人相互倾诉对彼此的好感并开始了交往。同学们虽然感到讶异,但也都很支持两人的恋情。\r\n这部恋爱喜剧描写的,正是这对个性截然相反的两人,在彼此尊重之下慢慢加深互相的理解,并与朋友们一同度过的校园生活点滴。如此温暖的故事就此开幕!\r\n\r\n\r\n\r\n[简介原文]\r\nいつも元気いっぱいだけど周りの目を気にしてしまう女子・鈴木と、\r\n物静かだけど自分の意見をしっかり言える男子・谷。\r\n正反対な二人が误解や勘違いをしながらもお互いを尊重し、\r\nゆっくりと理解を深めていく姿と、友人たちとの学校生活を描くラブコメディ。",
"name": "正反対な君と僕",
"name_cn": "相反的你和我",
"tags": [
{"name": "恋爱", "count": 1356},
{"name": "校园", "count": 1071},
{"name": "2026年1月", "count": 1033},
{"name": "漫画改", "count": 823},
],
"infobox": [
{"key": "中文名", "value": "相反的你和我"},
{"key": "别名", "value": [{"v": "正相反的你与我"}]},
{"key": "话数", "value": "12"},
{"key": "放送开始", "value": "2026年1月11日"},
],
"total_episodes": 12,
"id": 525565,
"type": 2,
"rating": {
"rank": 677,
"total": 2517,
"count": {
"1": 6,
"2": 3,
"3": 7,
"4": 13,
"5": 40,
"6": 167,
"7": 753,
"8": 1234,
"9": 194,
"10": 100,
},
"score": 7.6,
},
}
renderer = SubjectRenderer()
# 运行渲染器
base64_image = await renderer.render_subject_card(
rpc_url="https://api.unitedpooh.top/rpc",
data=subject_data,
headless=True,
timeout=60000,
)
# 验证结果
assert base64_image is not None, "[-] 渲染失败,未返回 Base64 字符串"
assert isinstance(base64_image, str), "返回值应为 Base64 字符串"
assert len(base64_image) > 100, "Base64 字符串过短"
logger.info(f"[+] 渲染成功!图片长度: {len(base64_image)} 字符")