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)