Files
SIA/test/reasoning_entry_test.py
2025-04-17 18:32:44 +02:00

87 lines
3.0 KiB
Python

import unittest
from sia.entry.reasoning_entry import ReasoningEntry
class ReasoningEntryTest(unittest.TestCase):
def setUp(self):
"""Set up test cases with fixed id"""
self.test_id = "test-id-1234"
def test_initialization(self):
"""Test entry initialization"""
content = "test reasoning"
entry = ReasoningEntry(self.test_id, content)
self.assertEqual(entry.content, content)
self.assertEqual(entry.id, self.test_id)
def test_update_does_nothing(self):
"""Test that update operation has no effect"""
content = "test reasoning"
entry = ReasoningEntry(self.test_id, content)
# Store initial state
initial_content = entry.content
# Perform update
entry.update()
# Verify state hasn't changed
self.assertEqual(entry.content, initial_content)
def test_generate_context(self):
"""Test XML context generation"""
content = "test reasoning"
entry = ReasoningEntry(self.test_id, content)
element = entry.generate_context()
# Verify XML structure
self.assertEqual(element.tag, "reasoning")
self.assertEqual(element.get("id"), self.test_id)
self.assertEqual(element.text, content)
def test_special_characters(self):
"""Test handling reasoning text with special characters"""
content = "Special reasoning: \n\t\r\'\"\\"
entry = ReasoningEntry(self.test_id, content)
element = entry.generate_context()
self.assertEqual(element.text, content)
def test_empty_content(self):
"""Test handling empty reasoning text"""
entry = ReasoningEntry(self.test_id, "")
element = entry.generate_context()
self.assertEqual(element.text, "")
def test_large_content(self):
"""Test handling large reasoning text"""
content = "x" * 10000
entry = ReasoningEntry(self.test_id, content)
element = entry.generate_context()
self.assertEqual(element.text, content)
def test_multiline_content(self):
"""Test handling multiline reasoning text"""
content = """Line 1
Line 2
Line 3"""
entry = ReasoningEntry(self.test_id, content)
element = entry.generate_context()
self.assertEqual(element.text, content)
def test_serialize(self):
"""Test serialization of the entry"""
content = "test reasoning"
entry = ReasoningEntry(self.test_id, content)
serialized = entry.serialize()
# Verify serialized form
self.assertEqual(serialized["type"], "reasoning")
self.assertEqual(serialized["id"], self.test_id)
self.assertEqual(serialized["content"], content)