Coverage for F:\DEV\EMIZ\emiz\validator.py : 55%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# coding=utf-8
"""Validates many kind of values against pre-defined conditions, raises Exception and logs errors"""
self, *, _type=None, _instance=None, _min=None, _max=None, _regex=None, _in_list=None, _path_exists=False, exc=None, logger=None ):
""" :param value: value to validate :param param_name: name of the value (for logging purpose) :param exc: exception to raise (default is "ValidatorError") :param logger: logger to use (default will be "Validator.logger") """ if exc is not None: self.exc = exc
if logger is not None: self.logger = logger
if self.type is not None and not type(value) == self.type: self.error( 'invalid type for parameter "{}": {} (value: {}) -- expected {}'.format(param_name, type(value), value, self.type) )
if self.instance is not None and not isinstance(value, self.instance): self.error( 'invalid instance for parameter "{}": {} (value: {}) -- expected {}'.format(param_name, type(value), value, self.instance) )
if self.min is not None and value < self.min: self.error('invalid value for parameter "{}" (under minima): {}'.format(param_name, value))
if self.max is not None and value > self.max: self.error('invalid value for parameter "{}" (over maxima): {}'.format(param_name, value))
if self.regex is not None and not re_full_match(self.regex, value): self.error('invalid value for parameter "{}" (should match: "{}"): {}' .format(param_name, self.regex, value))
if self.in_list is not None and value not in self.in_list: self.error( 'invalid value for parameter "{}"; "{}" is not in list: {}'.format(param_name, value, self.in_list) )
if self.path_exists and not exists(value): self.error('"{}" does not exist: {}'.format(param_name, value))
return True
if self.logger is not None: self.logger.error(error_msg)
if self.exc is not None: raise self.exc(error_msg)
|