예제 #1
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
    def validate(self, value):
        if self.min_value is not None and value < self.min_value:
            raise ValidationError(
                f"Min-value constraint not satisfied: '{value}'")
        if self.max_value is not None and value > self.max_value:
            raise ValidationError(
                f"Max-value constraint not satisfied: '{value}'")

        return super().validate(value)
예제 #2
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
    def validate(self, value):
        result = urllib.parse.urlparse(value)

        if not result.scheme:
            raise ValidationError(f"no scheme provided for url: {value}")
        if not result.path:
            raise ValidationError(f"no path provided for url: {value}")
        if not result.netloc:
            raise ValidationError(f"no domain provided for url: {value}")

        return True
예제 #3
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
 def __set__(self, instance, value):
     if self.validate(value):
         instance._values[self] = value
     else:
         # Usually validate should have raised already.
         # Let's do it again. Just in case...
         raise ValidationError(
             f"'{value}' is not a valid value for {self.__class__.__name__}")
예제 #4
0
파일: config.py 프로젝트: hiaselhans/cnfrm
    def validate(self):
        for fieldname in self.get_fieldnames():
            field = self.get_field(fieldname)
            value = self[fieldname]

            if field.required and value is None:
                raise ValidationError(f"Required field is empty: {fieldname}")

        return True
예제 #5
0
파일: config.py 프로젝트: hiaselhans/cnfrm
    def __setattr__(self, fieldname, value):
        if fieldname not in ("_values", ):
            fieldnames = self.get_fieldnames()

            if fieldname not in fieldnames:
                raise ConfigurationError(
                    f"'{fieldname}' can not be set for configuration {self}")

        try:
            super().__setattr__(fieldname, value)
        except ValidationError as exception:
            raise ValidationError(
                f"Validation failed for '{fieldname}'") from exception
예제 #6
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
    def validate(self, value):
        if value not in self.choices:
            raise ValidationError(f"{value} is not a valid choice for field {self}")

        return super().validate(value)
예제 #7
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
 def _raise_validation(self, value):
     raise ValidationError(
         f"{value} is not valid for {self.__class__.__name__}")
예제 #8
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
 def validate(self, value):
     if self.required and value is None:
         raise ValidationError("Cannot set required field to None")
     return True
예제 #9
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
    def validate(self, value):
        if not os.path.isdir(value):
            raise ValidationError(f"Not a directory: '{value}'")

        return True
예제 #10
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
    def validate(self, value):
        if not os.path.isfile(value):
            raise ValidationError(f"Not a file: '{value}'")

        return True
예제 #11
0
파일: fields.py 프로젝트: hiaselhans/cnfrm
    def validate(self, value):
        _name, addr = parseaddr(value)
        if self.rex.match(addr.upper()):
            return True

        raise ValidationError(f"Not a valid email address: '{addr}'")