class Rate(Entity): _value = fields.StrField(mutable=True) _other_value = fields.StrField() _default = fields.StrField(default_value='hello world') _other_default = fields.IntField(default_value=1) _private = fields.StrField(private=True) _immutable = fields.StrField() _type = fields.StrField(choices=Types)
class Getter(Entity): _value = fields.IntField(private=False) def get_value(self): return self._value + 5
class Model0(Entity): _value = fields.StrField() _int_value = fields.IntField()
class Private(Entity): _add = fields.IntField() _value = fields.IntField(private=False) def get_value(self): return self._add + self._value
def test_wrong_int_value(value): int_field = fields.IntField() with raises(FieldValueError) as e: int_field.parse(value) assert str(e.value) == f'{type(value)} is not a valid value for IntField'
class Setter(Entity): _value = fields.IntField(private=False, mutable=True) def set_value(self, value): value = Setter._value.parse(value) self._value = value + 5
def test_parse_int_value(value, expected_result): int_field = fields.IntField() assert int_field.parse(value) == expected_result
def test_assert_int_max_value_is_integer(): with raises(AssertionError): fields.IntField(max_value='some value')
def test_int_max_value(): field = fields.IntField(max_value=10) with raises(IntMaxValueError) as e: field.parse(11) assert str(e.value) == 'value (11) must be <= max_value (10)'
def test_int_min_value(): field = fields.IntField(min_value=0) with raises(IntMinValueError) as e: field.parse(-1) assert str(e.value) == 'value (-1) must be >= min_value (0)'
class NewEntity(Entity): _field0 = fields.StrField() _field1 = fields.IntField()