Update unit tests
This commit is contained in:
@@ -1,78 +1,87 @@
|
||||
import unittest
|
||||
from datetime import datetime
|
||||
|
||||
from sia.reasoning_entry import ReasoningEntry
|
||||
|
||||
class ReasoningEntryTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
"""Set up test cases with fixed id and timestamp"""
|
||||
self.test_id = "test-id-1234"
|
||||
self.test_timestamp = datetime(2024, 10, 31, 12, 0, 0)
|
||||
|
||||
def test_initialization(self):
|
||||
"""Test entry initialization"""
|
||||
content = "test reasoning"
|
||||
entry = ReasoningEntry(self.test_id, self.test_timestamp, content)
|
||||
|
||||
self.assertEqual(entry.content, content)
|
||||
self.assertEqual(entry.id, self.test_id)
|
||||
self.assertEqual(entry.timestamp, self.test_timestamp)
|
||||
|
||||
def test_update_does_nothing(self):
|
||||
"""Test that update operation has no effect"""
|
||||
content = "test reasoning"
|
||||
entry = ReasoningEntry(self.test_id, self.test_timestamp, content)
|
||||
|
||||
# Store initial state
|
||||
initial_content = entry.generate_context().text
|
||||
|
||||
# Perform update
|
||||
entry.update()
|
||||
|
||||
# Verify state hasn't changed
|
||||
self.assertEqual(entry.generate_context().text, initial_content)
|
||||
|
||||
def test_generate_context(self):
|
||||
"""Test XML context generation"""
|
||||
content = "test reasoning"
|
||||
entry = ReasoningEntry(self.test_id, self.test_timestamp, 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, f"{content}")
|
||||
|
||||
def test_special_characters(self):
|
||||
"""Test handling reasoning text with special characters"""
|
||||
content = "Special reasoning: \n\t\r\'\"\\"
|
||||
entry = ReasoningEntry(self.test_id, self.test_timestamp, content)
|
||||
|
||||
element = entry.generate_context()
|
||||
self.assertEqual(element.text, f"{content}")
|
||||
|
||||
def test_empty_content(self):
|
||||
"""Test handling empty reasoning text"""
|
||||
entry = ReasoningEntry(self.test_id, self.test_timestamp, "")
|
||||
|
||||
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, self.test_timestamp, content)
|
||||
|
||||
element = entry.generate_context()
|
||||
self.assertEqual(element.text, f"{content}")
|
||||
|
||||
def test_multiline_content(self):
|
||||
"""Test handling multiline reasoning text"""
|
||||
content = """Line 1
|
||||
Line 2
|
||||
Line 3"""
|
||||
entry = ReasoningEntry(self.test_id, self.test_timestamp, content)
|
||||
|
||||
element = entry.generate_context()
|
||||
self.assertEqual(element.text, f"{content}")
|
||||
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)
|
||||
Reference in New Issue
Block a user