From cbc653ffd0ea9abf4360623dc7a7651e1a49cc61 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Sat, 25 Oct 2025 00:30:48 +0800 Subject: 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. --- tests/test_renderers.py | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) (limited to 'tests/test_renderers.py') 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("", 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() -- cgit v1.2.3-70-g09d2