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 []
|