def test_from_json_object_object(self): person_schema = JsonObjectSchema( properties=dict(name=JsonStringSchema(), age=JsonIntegerSchema(), deleted=JsonBooleanSchema(default=False))) schema = JsonObjectSchema(properties=dict(person=person_schema)) value = {'person': {'name': 'Bibo', 'age': 15}} self.assertEqual( {'person': { 'name': 'Bibo', 'age': 15, 'deleted': False }}, schema.from_instance(value)) Assignment = namedtuple('Assignment', ['person']) schema.factory = Assignment self.assertEqual( Assignment(person={ 'name': 'Bibo', 'age': 15, 'deleted': False }), schema.from_instance(value)) Person = namedtuple('Person', ['name', 'age', 'deleted']) person_schema.factory = Person self.assertEqual( Assignment(person=Person(name='Bibo', age=15, deleted=False)), schema.from_instance(value))
def test_from_json_object_array_object(self): person_schema = JsonObjectSchema( properties=dict(name=JsonStringSchema(), age=JsonIntegerSchema(), deleted=JsonBooleanSchema(default=False))) schema = JsonObjectSchema(properties=dict(persons=JsonArraySchema( items=person_schema))) value = { 'persons': [{ 'name': 'Bibo', 'age': 15 }, { 'name': 'Ernie', 'age': 12 }] } self.assertEqual( { 'persons': [{ 'name': 'Bibo', 'age': 15, 'deleted': False }, { 'name': 'Ernie', 'age': 12, 'deleted': False }] }, schema.from_instance(value)) Assignment = namedtuple('Assignment', ['persons']) schema.factory = Assignment self.assertEqual( Assignment(persons=[{ 'name': 'Bibo', 'age': 15, 'deleted': False }, { 'name': 'Ernie', 'age': 12, 'deleted': False }]), schema.from_instance(value)) Person = namedtuple('Person', ['name', 'age', 'deleted']) person_schema.factory = Person self.assertEqual( Assignment(persons=[ Person(name='Bibo', age=15, deleted=False), Person(name='Ernie', age=12, deleted=False) ]), schema.from_instance(value))
def test_from_json_object(self): value = {'name': 'Bibo', 'age': 12, 'deleted': True} person_schema = JsonObjectSchema( properties=dict(name=JsonStringSchema(), age=JsonIntegerSchema(), deleted=JsonBooleanSchema(default=False))) self.assertEqual(value, person_schema.from_instance(value)) self.assertEqual({ 'name': 'Bibo', 'age': 12, 'deleted': False }, person_schema.from_instance({ 'name': 'Bibo', 'age': 12 })) Person = namedtuple('Person', ['name', 'age', 'deleted']) person_schema.factory = Person self.assertEqual(Person(name='Bibo', age=12, deleted=True), person_schema.from_instance(value))