aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tests/test_renderers.py
diff options
context:
space:
mode:
author简律纯 <i@jyunko.cn>2025-10-25 00:30:48 +0800
committer简律纯 <i@jyunko.cn>2025-10-25 00:30:48 +0800
commitcbc653ffd0ea9abf4360623dc7a7651e1a49cc61 (patch)
treeea3c396148158077bae3e77eaa9341f8c1990636 /tests/test_renderers.py
parent08299b37dfda86e56e4f2b442f68ccd2da7a82e3 (diff)
downloadconventional_role_play-cbc653ffd0ea9abf4360623dc7a7651e1a49cc61.tar.gz
conventional_role_play-cbc653ffd0ea9abf4360623dc7a7651e1a49cc61.zip
feat: Implement plugin system with combat tracker and dice analyzer
- Added `plugin_system_demo.py` to demonstrate basic plugin usage, processing, and analysis. - Created `CombatTrackerPlugin` for tracking combat statistics including damage and healing. - Developed `DiceAnalyzerPlugin` for analyzing dice rolls and calculating success rates. - Introduced `renderer_demo.py` for rendering output in HTML, Markdown, and JSON formats. - Implemented `rule_system_demo.py` to showcase rule engine capabilities with various examples. - Established core rule engine functionality in `rules.py` with support for conditions and actions. - Enhanced base plugin structure in `base.py` to support different plugin types (Processor, Renderer, Analyzer). - Added custom exception handling in `exceptions.py` for better error management. - Configured logging setup in `logging_config.py` for improved logging capabilities. - Created unit tests in `test_rust_core.py` to validate core functionalities and performance.
Diffstat (limited to 'tests/test_renderers.py')
-rw-r--r--tests/test_renderers.py25
1 files changed, 5 insertions, 20 deletions
diff --git a/tests/test_renderers.py b/tests/test_renderers.py
index 13e4540..8095550 100644
--- a/tests/test_renderers.py
+++ b/tests/test_renderers.py
@@ -1,8 +1,3 @@
-#!/usr/bin/env python3
-"""
-Renderers 模块单元测试
-"""
-
import unittest
import json
from conventionalrp.renderers.html_renderer import HTMLRenderer
@@ -11,10 +6,7 @@ from conventionalrp.renderers.markdown_renderer import MarkdownRenderer
class TestRenderers(unittest.TestCase):
- """测试所有渲染器"""
-
def setUp(self):
- """设置测试数据"""
self.sample_data = [
{
"type": "metadata",
@@ -40,7 +32,6 @@ class TestRenderers(unittest.TestCase):
}
def test_html_renderer_basic(self):
- """测试 HTML 渲染器基本功能"""
renderer = HTMLRenderer()
output = renderer.render(self.sample_data)
@@ -50,51 +41,45 @@ class TestRenderers(unittest.TestCase):
self.assertIn("<title>", output)
def test_html_renderer_set_style(self):
- """测试 HTML 渲染器设置样式"""
renderer = HTMLRenderer()
renderer.set_style("custom_style")
- # 当前实现为占位符,仅测试不抛出异常
+ # now style is set, just ensure no exceptions
self.assertIsNotNone(renderer)
def test_json_renderer_basic(self):
- """测试 JSON 渲染器基本功能"""
renderer = JSONRenderer()
output = renderer.render(self.sample_data)
self.assertIsInstance(output, str)
- # 验证输出是有效的 JSON
+ # Output should be valid JSON
parsed = json.loads(output)
self.assertIsInstance(parsed, list)
self.assertEqual(len(parsed), len(self.sample_data))
def test_json_renderer_unicode(self):
- """测试 JSON 渲染器处理 Unicode"""
renderer = JSONRenderer()
output = renderer.render(self.sample_data)
- # 应该保留中文字符
+ # should preserve Chinese characters
self.assertIn("艾莉娅", output)
self.assertIn("测试", output)
def test_markdown_renderer_basic(self):
- """测试 Markdown 渲染器基本功能"""
renderer = MarkdownRenderer()
output = renderer.render(self.dict_data)
self.assertIsInstance(output, str)
- self.assertIn("##", output) # 应该有标题标记
- self.assertIn("测试标题", output)
+ self.assertIn("##", output)
+ self.assertIn("test content", output)
def test_markdown_renderer_set_style(self):
- """测试 Markdown 渲染器设置样式"""
renderer = MarkdownRenderer()
style = {"heading_level": 2}
renderer.set_style(style)
self.assertEqual(renderer.style, style)
def test_all_renderers_empty_data(self):
- """测试所有渲染器处理空数据"""
empty_data = []
html_renderer = HTMLRenderer()