Ejemplo n.º 1
0
class UserSchema(Schema):
    name = fields.String()
    age = fields.Float()
    created = fields.DateTime()
    created_formatted = fields.DateTime(format="%Y-%m-%d", attribute="created")
    created_iso = fields.DateTime(format="iso", attribute="created")
    updated = fields.DateTime()
    updated_local = fields.LocalDateTime(attribute="updated")
    species = fields.String(attribute="SPECIES")
    id = fields.String(default="no-id")
    uppername = Uppercased(attribute='name')
    homepage = fields.Url()
    email = fields.Email()
    balance = fields.Price()
    is_old = fields.Method("get_is_old")
    lowername = fields.Function(lambda obj: obj.name.lower())
    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.Select(['male', 'female'])

    def get_is_old(self, obj):
        try:
            return obj.age > 80
        except TypeError as te:
            raise ValidationError(text_type(te))

    def make_object(self, data):
        return User(**data)
Ejemplo n.º 2
0
class UserMetaSchema(Schema):
    """The equivalent of the UserSchema, using the ``fields`` option."""
    uppername = Uppercased(attribute='name')
    balance = fields.Price()
    is_old = fields.Method("get_is_old")
    lowername = fields.Function(lambda obj: obj.name.lower())
    updated_local = fields.LocalDateTime(attribute="updated")
    species = fields.String(attribute="SPECIES")
    homepage = fields.Url()
    email = fields.Email()

    def get_is_old(self, obj):
        try:
            return obj.age > 80
        except TypeError as te:
            raise ValidationError(te)

    class Meta:
        fields = ('name', 'age', 'created', 'updated', 'id', 'homepage',
                  'uppername', 'email', 'balance', 'is_old', 'lowername',
                  "updated_local", "species", 'registered', 'hair_colors',
                  'sex_choices', "finger_count", 'uid', 'time_registered',
                  'birthdate', 'since_created')
Ejemplo n.º 3
0
 def test_price_field_deserialization(self):
     field = fields.Price()
     assert field.deserialize('12.345') == '12.35'
Ejemplo n.º 4
0
 def test_price_field_default(self, user):
     field = fields.Price()
     user.balance = None
     assert field.serialize('price', user) == '0.00'
Ejemplo n.º 5
0
 def test_price_field(self, user):
     field = fields.Price()
     user.balance = 100
     assert field.serialize('balance', user) == '100.00'
Ejemplo n.º 6
0
 def test_price_field_none(self, user):
     field = fields.Price()
     user.balance = None
     assert field.serialize('balance', user) is None