Update unit tests

This commit is contained in:
Niels Geens
2025-04-17 18:32:44 +02:00
parent 34fb5d814f
commit 813c6a3f8f
18 changed files with 2365 additions and 2279 deletions

View File

@@ -1,78 +1,90 @@
import unittest
from datetime import datetime
from sia.entry.parse_error_entry import ParseErrorEntry
class ParseErrorEntryTest(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 = "invalid content"
error = "parsing failed"
entry = ParseErrorEntry(self.test_id, self.test_timestamp, content, error)
self.assertEqual(entry.id, self.test_id)
self.assertEqual(entry.timestamp, self.test_timestamp)
self.assertEqual(entry.content, content)
self.assertEqual(entry.error, error)
def test_update_does_nothing(self):
"""Test that update operation has no effect"""
content = "invalid content"
error = "parsing failed"
entry = ParseErrorEntry(self.test_id, self.test_timestamp, content, error)
# Store initial state
initial_content = entry.content
initial_error = entry.error
# Perform update
entry.update()
# Verify state hasn't changed
self.assertEqual(entry.content, initial_content)
self.assertEqual(entry.error, initial_error)
def test_generate_context(self):
"""Test XML context generation"""
content = "invalid content"
error = "parsing failed"
entry = ParseErrorEntry(self.test_id, self.test_timestamp, content, error)
element = entry.generate_context()
# Verify XML structure
self.assertEqual(element.tag, "parse_error")
self.assertEqual(element.get("id"), self.test_id)
# Verify error element
error_elem = element.find("error")
self.assertIsNotNone(error_elem)
self.assertEqual(error_elem.text, error)
# Verify content element
content_elem = element.find("content")
self.assertIsNotNone(content_elem)
self.assertEqual(content_elem.text, content)
def test_special_characters(self):
"""Test handling content and errors with special characters"""
content = "Special content: \n\t\r\'\"\\"
error = "Special error: \n\t\r\'\"\\"
entry = ParseErrorEntry(self.test_id, self.test_timestamp, content, error)
element = entry.generate_context()
self.assertEqual(element.find("content").text, content)
self.assertEqual(element.find("error").text, error)
def test_empty_content_and_error(self):
"""Test handling empty content and error messages"""
entry = ParseErrorEntry(self.test_id, self.test_timestamp, "", "")
element = entry.generate_context()
self.assertEqual(element.find("content").text, "")
self.assertEqual(element.find("error").text, "")
import unittest
import xml.etree.ElementTree as ET
from sia.entry.parse_error_entry import ParseErrorEntry
class ParseErrorEntryTest(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 = "invalid content"
error = "parsing failed"
entry = ParseErrorEntry(self.test_id, content, error)
self.assertEqual(entry.id, self.test_id)
self.assertEqual(entry.content, content)
self.assertEqual(entry.error, error)
def test_update_does_nothing(self):
"""Test that update operation has no effect"""
content = "invalid content"
error = "parsing failed"
entry = ParseErrorEntry(self.test_id, content, error)
# Store initial state
initial_content = entry.content
initial_error = entry.error
# Perform update
entry.update()
# Verify state hasn't changed
self.assertEqual(entry.content, initial_content)
self.assertEqual(entry.error, initial_error)
def test_generate_context(self):
"""Test XML context generation"""
content = "invalid content"
error = "parsing failed"
entry = ParseErrorEntry(self.test_id, content, error)
element = entry.generate_context()
# Verify XML structure
self.assertEqual(element.tag, "parse_error")
self.assertEqual(element.get("id"), self.test_id)
# Verify error element
error_elem = element.find("error")
self.assertIsNotNone(error_elem)
self.assertEqual(error_elem.text, error)
# Verify content element
content_elem = element.find("content")
self.assertIsNotNone(content_elem)
self.assertEqual(content_elem.text, content)
def test_special_characters(self):
"""Test handling content and errors with special characters"""
content = "Special content: \n\t\r\'\"\\"
error = "Special error: \n\t\r\'\"\\"
entry = ParseErrorEntry(self.test_id, content, error)
element = entry.generate_context()
self.assertEqual(element.find("content").text, content)
self.assertEqual(element.find("error").text, error)
def test_empty_content_and_error(self):
"""Test handling empty content and error messages"""
entry = ParseErrorEntry(self.test_id, "", "")
element = entry.generate_context()
self.assertEqual(element.find("content").text, "")
self.assertEqual(element.find("error").text, "")
def test_serialize(self):
"""Test serialization of the entry"""
content = "invalid content"
error = "parsing failed"
entry = ParseErrorEntry(self.test_id, content, error)
serialized = entry.serialize()
# Verify serialized form
self.assertEqual(serialized["type"], "parse_error")
self.assertEqual(serialized["id"], self.test_id)
self.assertEqual(serialized["content"], content)
self.assertEqual(serialized["error"], error)