45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
from jambo.exceptions.invalid_schema_exception import InvalidSchemaException
|
|
|
|
from unittest import TestCase
|
|
|
|
|
|
class TestInternalAssertionException(TestCase):
|
|
def test_inheritance(self):
|
|
self.assertTrue(issubclass(InvalidSchemaException, ValueError))
|
|
|
|
def test_message(self):
|
|
message = "This is an internal assertion error."
|
|
|
|
expected_message = f"Invalid JSON Schema: {message}"
|
|
|
|
with self.assertRaises(InvalidSchemaException) as ctx:
|
|
raise InvalidSchemaException(message)
|
|
|
|
self.assertEqual(str(ctx.exception), expected_message)
|
|
|
|
def test_invalid_field(self):
|
|
message = "This is an internal assertion error."
|
|
invalid_field = "testField"
|
|
|
|
expected_message = (
|
|
f"Invalid JSON Schema: {message} (invalid field: {invalid_field})"
|
|
)
|
|
|
|
with self.assertRaises(InvalidSchemaException) as ctx:
|
|
raise InvalidSchemaException(message, invalid_field=invalid_field)
|
|
|
|
self.assertEqual(str(ctx.exception), expected_message)
|
|
|
|
def test_cause(self):
|
|
message = "This is an internal assertion error."
|
|
cause = ValueError("Underlying cause")
|
|
|
|
expected_message = (
|
|
f"Invalid JSON Schema: {message} (caused by ValueError: Underlying cause)"
|
|
)
|
|
|
|
with self.assertRaises(InvalidSchemaException) as ctx:
|
|
raise InvalidSchemaException(message, cause=cause)
|
|
|
|
self.assertEqual(str(ctx.exception), expected_message)
|