Пример #1
0
    def test_subschema_validation(self):
        class SomeSchema(Schema):
            inner = IntegerField()

        field = Subschema(SomeSchema)

        assert field.validate(SomeSchema(inner=1))

        with self.assertRaises(Invalid):
            field.validate(SomeSchema(inner="wow"))

        with self.assertRaises(Invalid):
            field.validate(SomeSchema(inner=None))

        with self.assertRaises(Invalid):
            field.validate(None)

        with self.assertRaises(Invalid):
            field.validate(SomeSchema())

        with self.assertRaises(Invalid):
            field.validate({})

        field = Subschema(SomeSchema, required=False)

        assert field.validate(SomeSchema(inner=1))

        assert field.validate(None)

        assert field.validate({})

        assert field.validate(SomeSchema())

        assert field.validate(SomeSchema(inner=None))

        with self.assertRaises(Invalid):
            field.validate(SomeSchema(inner="wow"))