Skip to content

Required Validator

required_validator

Validator that fails when a value is None or an empty string.

RequiredValidator

Bases: ValidationRule

Fails when the value is None or an empty string.

Example
validator = RequiredValidator("username")

errors = validator.validate("alice")
assert errors == []

errors = validator.validate("")
assert len(errors) == 1  # required field is empty

errors = validator.validate(None)
assert len(errors) == 1  # required field is missing
Source code in src/forging_blocks/domain/validators/required_validator.py
class RequiredValidator(ValidationRule):
    """Fails when the value is ``None`` or an empty string.

    Example:
        ```python
        validator = RequiredValidator("username")

        errors = validator.validate("alice")
        assert errors == []

        errors = validator.validate("")
        assert len(errors) == 1  # required field is empty

        errors = validator.validate(None)
        assert len(errors) == 1  # required field is missing
        ```

    """

    def __init__(self, field: str) -> None:
        self._field = field

    def validate(self, value: Any) -> list[RuleViolationError]:
        if value is None or value == "":
            return [
                RuleViolatedError(
                    ErrorMessage(f"'{self._field}' is required."),
                    ErrorMetadata(context={"field": self._field, "code": "required"}),
                )
            ]
        return []