Пример #1
0
    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))
Пример #2
0
    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))
Пример #3
0
    def test_from_json_object_additional_properties_is_schema(self):
        Person = namedtuple('Person', ['name', 'age', 'deleted'])

        person_schema = JsonObjectSchema(
            properties=dict(name=JsonStringSchema(),
                            age=JsonIntegerSchema(),
                            deleted=JsonBooleanSchema(default=False)),
            factory=Person,
        )

        schema = JsonObjectSchema(additional_properties=person_schema, )

        value = {
            'p1': {
                'name': 'Bibo',
                'age': 15,
                'deleted': True
            },
            'p2': {
                'name': 'Ernie',
                'age': 12,
                'deleted': False
            },
        }

        self.assertEqual(
            {
                'p1': Person(name='Bibo', age=15, deleted=True),
                'p2': Person(name='Ernie', age=12, deleted=False),
            }, schema.from_instance(value))
Пример #4
0
    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))