diff --git a/tests/parser/test_object_type_parser.py b/tests/parser/test_object_type_parser.py new file mode 100644 index 0000000..8e86d44 --- /dev/null +++ b/tests/parser/test_object_type_parser.py @@ -0,0 +1,23 @@ +from unittest import TestCase + +from jambo.parser import ObjectTypeParser + + +class TestObjectTypeParser(TestCase): + def test_object_type_parser(self): + parser = ObjectTypeParser() + + properties = { + "type": "object", + "properties": { + "name": {"type": "string"}, + "age": {"type": "integer"}, + }, + } + + Model, _args = parser.from_properties("placeholder", properties) + + obj = Model(name="name", age=10) + + self.assertEqual(obj.name, "name") + self.assertEqual(obj.age, 10) diff --git a/tests/test_type_parser.py b/tests/test_type_parser.py deleted file mode 100644 index 051f9a1..0000000 --- a/tests/test_type_parser.py +++ /dev/null @@ -1,81 +0,0 @@ -from jambo.parser import ( - ArrayTypeParser, - FloatTypeParser, - GenericTypeParser, - IntTypeParser, - ObjectTypeParser, - StringTypeParser, -) - -import unittest - - -class TestTypeParser(unittest.TestCase): - def test_get_impl(self): - self.assertEqual(GenericTypeParser.get_impl("integer"), IntTypeParser) - self.assertEqual(GenericTypeParser.get_impl("string"), StringTypeParser) - self.assertEqual(GenericTypeParser.get_impl("number"), FloatTypeParser) - self.assertEqual(GenericTypeParser.get_impl("object"), ObjectTypeParser) - self.assertEqual(GenericTypeParser.get_impl("array"), ArrayTypeParser) - - def test_int_parser(self): - parser = IntTypeParser() - - type_parsing, type_validator = parser.from_properties( - "placeholder", - { - "type": "integer", - "minimum": 0, - "exclusiveMinimum": 1, - "maximum": 10, - "exclusiveMaximum": 11, - "multipleOf": 2, - }, - ) - - self.assertEqual(type_parsing, int) - self.assertEqual(type_validator["ge"], 0) - self.assertEqual(type_validator["gt"], 1) - self.assertEqual(type_validator["le"], 10) - self.assertEqual(type_validator["lt"], 11) - self.assertEqual(type_validator["multiple_of"], 2) - - def test_float_parser(self): - parser = FloatTypeParser() - - type_parsing, type_validator = parser.from_properties( - "placeholder", - { - "type": "number", - "minimum": 0, - "exclusiveMinimum": 1, - "maximum": 10, - "exclusiveMaximum": 11, - "multipleOf": 2, - }, - ) - - self.assertEqual(type_parsing, float) - self.assertEqual(type_validator["ge"], 0) - self.assertEqual(type_validator["gt"], 1) - self.assertEqual(type_validator["le"], 10) - self.assertEqual(type_validator["lt"], 11) - self.assertEqual(type_validator["multiple_of"], 2) - - def test_object_parser(self): - parser = ObjectTypeParser() - - properties = { - "type": "object", - "properties": { - "name": {"type": "string"}, - "age": {"type": "integer"}, - }, - } - - Model, _args = parser.from_properties("placeholder", properties) - - obj = Model(name="name", age=10) - - self.assertEqual(obj.name, "name") - self.assertEqual(obj.age, 10)