Ejemplo n.º 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"))
Ejemplo n.º 2
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))
Ejemplo n.º 3
0
 class Outer(Schema):
     inner = Subschema(Inner)
Ejemplo n.º 4
0
 class Outer(Schema):
     maybe = Subschema(Inner, required=False)
Ejemplo n.º 5
0
 class Inner(Schema):
     maybe = Subschema(MostIn, required=True)
Ejemplo n.º 6
0
 class Target(Schema):
     inner = Subschema(TargetSub, required=False)
Ejemplo n.º 7
0
 class OuterTarget(Schema):
     inner = Subschema(InnerTarget)
Ejemplo n.º 8
0
 class Source(Schema):
     inner = Subschema(SourceSub, required=False)
Ejemplo n.º 9
0
 class Target(Schema):
     inner = Subschema(TargetInner)
Ejemplo n.º 10
0
 class OuterSource(Schema):
     nested = Subschema(InnerSource)
Ejemplo n.º 11
0
 class First(GenericSchema):
     second = Subschema(Second)
Ejemplo n.º 12
0
 class First(Schema):
     second = Subschema(Second)
Ejemplo n.º 13
0
 class FirstSchema(Schema):
     that = Subschema(SecondSchema)
Ejemplo n.º 14
0
class Conversation(Schema):
    numbers = ArrayField(IntegerField())
    conversants = ArrayField(Subschema(Person))
Ejemplo n.º 15
0
class Ship(Schema):
    name = UnicodeField()
    captain = Subschema(Person)