예제 #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))