class UserSchema(Schema): name = fields.String(required=True, validate=validate.Length(min=1, max=255)) age = fields.Float() created = fields.DateTime() created_formatted = fields.DateTime(format="%Y-%m-%d", attribute="created", dump_only=True) created_iso = fields.DateTime(format="iso", attribute="created", dump_only=True) updated = fields.DateTime() species = fields.String(attribute="SPECIES") id = fields.String(default="no-id") homepage = fields.Url() email = fields.Email() balance = fields.Decimal() registered = fields.Boolean() hair_colors = fields.List(fields.Raw) sex_choices = fields.List(fields.Raw) finger_count = fields.Integer() uid = fields.UUID() time_registered = fields.Time() birthdate = fields.Date() since_created = fields.TimeDelta() sex = fields.Str(validate=validate.OneOf( choices=["male", "female", "non_binary", "other"], labels=["Male", "Female", "Non-binary/fluid", "Other"], )) various_data = fields.Dict() addresses = fields.Nested(Address, many=True, validate=validate.Length(min=1, max=3)) github = fields.Nested(GithubProfile) const = fields.String(validate=validate.Length(equal=50)) bytestring = fields.Bytes()
class TestSchema(Schema): foo = fields.String(required=True)
class Index(views.MethodView): @use_args({"foo": fields.String(required=True)}) def post(self, args): return args
class Index(views.MethodView): @use_body(fields.String(required=True)) def post(self, args): return args
class Index(views.MethodView): @use_body(fields.String(missing="default")) def post(self, args): return args
class TestSchema(Schema): myfield = fields.String(metadata={"foo": "Bar"}) yourfield = fields.Integer(required=True, baz="waz")
class GithubProfile(Schema): uri = fields.String(required=True)
class TestSchema(Schema): foo = fields.String()
class TestSchema(Schema): foo = fields.String(validate=validate.Range(max=4))
class TestSchema(Schema): optional_value = fields.String()
class TestSchema(Schema): id = fields.Integer(required=True) readonly_fld = fields.String(allow_none=True)
class TestSchema(Schema): id = fields.Integer(required=True) readonly_fld = fields.String(dump_only=True)
class UserSchema(Schema): name = fields.String(required=True) favourite_colour = Colour()
class ListSchema(Schema): foo = fields.List(fields.String(), required=True)
def test_schema_to_converter_map(): test_schema = {"foo": fields.String()} converter = ms.schema_to_converter(test_schema) assert converter({"foo": 5}) == {"foo": "5"}
class TestSchema(Schema): ip_address = fields.String(validate=validate.Regexp(ipv4_regex))
def test_schema_to_converter_field(): field = fields.String() converter = ms.schema_to_converter(field) assert converter(5) == "5"
class Address(Schema): id = fields.String(default="no-id") street = fields.String(required=True) number = fields.String(required=True) city = fields.String(required=True) floor = fields.Integer(validate=validate.Range(min=1, max=4))
def test_field_schema(app_ctx): test_schema = schema.FieldSchema(fields.String()) assert test_schema.serialize(5) == "5" assert test_schema.dump(5) == "5" assert test_schema.deserialize("string") == "string"
class TestNestedSchema(Schema): myfield = fields.String(description="Brown Cow") yourfield = fields.Integer(required=True)