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))