示例#1
0
    def test_subschema_serialization(self):
        class SomeSchema(Schema):
            great = ArrayField(int, required=False)

        field = Subschema(SomeSchema)

        self.assertEqual({}, field.serialize(None))

        self.assertEqual([], field.serialize([]))

        self.assertEqual("wow", field.serialize("wow"))

        source = SomeSchema(great=[1, 2, 3])
        self.assertEqual({"great": [1, 2, 3]}, field.serialize(source))
        source = SomeSchema(great=None)
        self.assertEqual({}, field.serialize(source))

        field = Subschema(SomeSchema, required=False)
        source = SomeSchema(great=[1, 2, 3])
        self.assertEqual({"great": [1, 2, 3]}, field.serialize(source))
        source = SomeSchema(great=None)
        self.assertEqual({}, field.serialize(source))
        self.assertEqual({"great": None},
                         field.serialize(source, implicit_nulls=False))
示例#2
0
 class Outer(Schema):
     inner = Subschema(Inner)
示例#3
0
 class Inner(Schema):
     maybe = Subschema(MostIn, required=True)
示例#4
0
 class Outer(Schema):
     maybe = Subschema(Inner, required=False)
示例#5
0
 class Target(Schema):
     inner = Subschema(TargetSub, required=False)
示例#6
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"))
示例#7
0
 class OuterTarget(Schema):
     inner = Subschema(InnerTarget)
示例#8
0
 class Source(Schema):
     inner = Subschema(SourceSub, required=False)
示例#9
0
 class Target(Schema):
     inner = Subschema(TargetInner)
示例#10
0
 class OuterSource(Schema):
     nested = Subschema(InnerSource)
示例#11
0
 class First(GenericSchema):
     second = Subschema(Second)
示例#12
0
 class First(Schema):
     second = Subschema(Second)
示例#13
0
 class FirstSchema(Schema):
     that = Subschema(SecondSchema)
示例#14
0
文件: test_bfh.py 项目: benauthor/bfh
class Conversation(Schema):
    numbers = ArrayField(IntegerField())
    conversants = ArrayField(Subschema(Person))
示例#15
0
文件: test_bfh.py 项目: benauthor/bfh
class Ship(Schema):
    name = UnicodeField()
    captain = Subschema(Person)