def test_fixed_list_field_deserialization(self): field = fields.List(fields.Fixed(3)) nums = (1, 2, 3) assert field.deserialize(nums) == ['1.000', '2.000', '3.000'] with pytest.raises(ValidationError): field.deserialize((1, 2, 'invalid'))
def test_fixed_field_deserialization(self): field = fields.Fixed(decimals=3) assert field.deserialize('12.3456') == '12.346' field.deserialize('12.3456') == '12.346' assert field.deserialize(12.3456) == '12.346'
def test_fixed_field_deserialize_invalid_value(self): field = fields.Fixed(decimals=3) with pytest.raises(ValidationError): field.deserialize('badvalue')
def test_fixed_field_default(self, user): field = fields.Fixed() user.age = None assert field.serialize('age', user) == '0.000'
def test_fixed_field_invalid_value(self, user): field = fields.Fixed() with pytest.raises(MarshallingError): user.age = 'invalidvalue' field.serialize('age', user)
def test_fixed_field(self, user): field = fields.Fixed(3) user.age = 42 result = field.serialize('age', user) assert result == '42.000'
class UserFixedSchema(UserSchema): age = fields.Fixed(decimals=2)
class ErrorSerializer(Serializer): email = fields.Email(error="Invalid email") homepage = fields.Url(error="Bad homepage.") balance = fields.Fixed(error="Bad balance.")
class UserFixedSerializer(UserSerializer): age = fields.Fixed(decimals=2)
def test_fixed_field_none(self, user): field = fields.Fixed() user.age = None assert field.serialize('age', user) is None