Implements Better Object Tests
This commit is contained in:
23
tests/parser/test_object_type_parser.py
Normal file
23
tests/parser/test_object_type_parser.py
Normal file
@@ -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)
|
||||||
@@ -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)
|
|
||||||
Reference in New Issue
Block a user