class DebugImagesRequest(Base): metrics: Sequence[TaskMetric] = ListField( items_types=TaskMetric, validators=[Length(minimum_value=1)]) iters: int = IntField(default=1, validators=validators.Min(1)) navigate_earlier: bool = BoolField(default=True) refresh: bool = BoolField(default=False) scroll_id: str = StringField()
class CacheType(models.Base): __tablename__ = "cachetypes" engine = fields.StringField(required=True) host = fields.StringField(required=True, validators=[validators.Length(1, 256)]) port = fields.IntField( validators=[validators.Min(0), validators.Max(65535)]) username = fields.StringField() password = fields.StringField()
class ConfigModel(TinyJsonModel): __tablename__ = "config" ENV = fields.StringField(required=True, validators=[validators.Length(3, 25)]) SECRET_KEY = fields.StringField(required=True, validators=[validators.Length(50, 64)]) APP_DIR = fields.StringField(required=True, validators=[validators.Length(1, 253)]) PROJECT_ROOT = fields.StringField( required=True, validators=[validators.Length(1, 256)]) BCRYPT_LOG_ROUNDS = fields.IntField( required=True, validators=[ validators.Min(4), validators.Max(10000) ]) # needs at least 4 to avoid "ValueError: Invalid rounds" DEBUG = fields.BoolField(required=True) ASSETS_DEBUG = fields.BoolField(required=True) DEBUG_TB_ENABLED = fields.BoolField(required=True) DEBUG_TB_INTERCEPT_REDIRECTS = fields.BoolField(required=True) CACHE_TYPE = fields.EmbeddedField(CacheType) SQLALCHEMY_TRACK_MODIFICATIONS = fields.BoolField(required=True) APP_NAME = fields.StringField(required=True, validators=[validators.Length(1, 32)]) APP_TMPL = fields.StringField(required=True, validators=[validators.Length(1, 32)]) DB_NAME = fields.StringField(required=True, validators=[validators.Length(1, 32)]) DB_PATH = fields.StringField(required=True, validators=[validators.Length(1, 256)]) SQLALCHEMY_DATABASE_URI = fields.StringField( required=True, validators=[validators.Length(1, 256)]) WTF_CSRF_ENABLED = fields.BoolField(required=True) TESTING = fields.BoolField(required=True) AUTH_ENGINES = fields.ListField([AuthType]) FLASK_DEBUG_DISABLE_STRICT = fields.BoolField(required=True) _last_update = fields.DateTimeField(required=True) _created_at = fields.DateTimeField(required=True) def __init__(self, *args, **kwargs): self._last_update = datetime.utcnow() self._created_at = self._last_update super(ConfigModel, self).__init__(*args, **kwargs) # Example model custom method def created_at_datetime(self): return self._created_at @property def getauthbackends(self): return self.AUTH_ENGINES class Meta: database = dbj
def test_exclusive_validation(): validator = validators.Min(3, True) assert 3 == validator.minimum_value validator.validate(4) with pytest.raises(errors.ValidationError): validator.validate(3) with pytest.raises(errors.ValidationError): validator.validate(2) with pytest.raises(errors.ValidationError): validator.validate(-2)
def test_min_validation(): validator = validators.Min(3) assert 3 == validator.minimum_value validator.validate(4) validator.validate(3) with pytest.raises(errors.ValidationError): validator.validate(2) with pytest.raises(errors.ValidationError): validator.validate(-2)
class People(models.Base): min_max_len = fields.ListField(str, validators=validators.Length(2, 4)) min_len = fields.ListField(str, validators=validators.Length(2)) max_len = fields.ListField(str, validators=validators.Length(4)) item_validator_int = fields.ListField( int, item_validators=[validators.Min(10), validators.Max(20)] ) item_validator_str = fields.ListField( str, item_validators=[validators.Length(10, 20), validators.Regex(r"\w+")], validators=[validators.Length(1, 2)], ) surname = fields.StringField()
class Person(models.Base): name = fields.StringField() surname = fields.StringField() age = fields.IntField(validators=validators.Min(18, True))
class StatsReportBase(StatsBase): from_date = FloatField(required=True, validators=validators.Min(0)) to_date = FloatField(required=True, validators=validators.Min(0)) interval = IntField(required=True, validators=validators.Min(1))
class MindMupRootNode(BaseIdea): attr = fields.EmbeddedField(rootAttributes) links = fields.ListField([Link]) formatVersion = fields.IntField( validators=[validators.Max(2), validators.Min(2)]) defaults = {'formatVersion': 2}
class GetMetricsRequest(Base): queue_ids = ListField([str]) from_date = FloatField(required=True, validators=validators.Min(0)) to_date = FloatField(required=True, validators=validators.Min(0)) interval = IntField(required=True, validators=validators.Min(1))