Example #1
0
    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)
Example #2
0
    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
Example #3
0
 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__}")
Example #4
0
    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
Example #5
0
    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
Example #6
0
    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)
Example #7
0
 def _raise_validation(self, value):
     raise ValidationError(
         f"{value} is not valid for {self.__class__.__name__}")
Example #8
0
 def validate(self, value):
     if self.required and value is None:
         raise ValidationError("Cannot set required field to None")
     return True
Example #9
0
    def validate(self, value):
        if not os.path.isdir(value):
            raise ValidationError(f"Not a directory: '{value}'")

        return True
Example #10
0
    def validate(self, value):
        if not os.path.isfile(value):
            raise ValidationError(f"Not a file: '{value}'")

        return True
Example #11
0
    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}'")