Feature-Test RE Sanitization
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
import unittest
|
||||||
|
|
||||||
|
from ReportEngine.ir import IRValidator
|
||||||
|
from ReportEngine.nodes.chapter_generation_node import ChapterGenerationNode
|
||||||
|
|
||||||
|
|
||||||
|
class ChapterSanitizationTestCase(unittest.TestCase):
|
||||||
|
"""Lightweight regression tests for the chapter sanitization helpers."""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.node = ChapterGenerationNode(llm_client=None, validator=IRValidator(), storage=None)
|
||||||
|
|
||||||
|
def test_table_cell_empty_blocks_repaired(self):
|
||||||
|
chapter = {
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"type": "table",
|
||||||
|
"rows": [
|
||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{"blocks": []},
|
||||||
|
{"text": "同比变化", "blocks": None},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
self.node._sanitize_chapter_blocks(chapter)
|
||||||
|
table_block = chapter["blocks"][0]
|
||||||
|
cells = table_block["rows"][0]["cells"]
|
||||||
|
self.assertEqual(len(cells), 2)
|
||||||
|
for cell in cells:
|
||||||
|
blocks = cell.get("blocks")
|
||||||
|
self.assertIsInstance(blocks, list)
|
||||||
|
self.assertGreater(len(blocks), 0)
|
||||||
|
for block in blocks:
|
||||||
|
self.assertEqual(block.get("type"), "paragraph")
|
||||||
|
|
||||||
|
def test_table_rows_scalar_values_expanded(self):
|
||||||
|
chapter = {"blocks": [{"type": "table", "rows": ["全国趋势"]}]}
|
||||||
|
self.node._sanitize_chapter_blocks(chapter)
|
||||||
|
table_block = chapter["blocks"][0]
|
||||||
|
self.assertEqual(len(table_block["rows"]), 1)
|
||||||
|
row = table_block["rows"][0]
|
||||||
|
self.assertIn("cells", row)
|
||||||
|
self.assertEqual(len(row["cells"]), 1)
|
||||||
|
cell = row["cells"][0]
|
||||||
|
self.assertIsInstance(cell.get("blocks"), list)
|
||||||
|
self.assertEqual(
|
||||||
|
cell["blocks"][0]["inlines"][0]["text"],
|
||||||
|
"全国趋势",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
unittest.main()
|
||||||
Reference in New Issue
Block a user