flask-website/flask/floritiweb/lib/forms/test_handle_params.py
2025-05-15 21:05:28 +02:00

38 lines
868 B
Python

from handle_params import HandleParams, ValidationError
import pytest, re
def regex_validator(regex, error_message):
def _validate(_, value):
if len(value) > 0:
m = re.search(regex, value)
else:
return
if m:
return value
else:
raise ValidationError(error_message)
return _validate
def test_hp_init():
hp = HandleParams()
def test_hp_with_text_field():
hp = HandleParams()
hp.add_field('name', {
'validate': regex_validator(
r'^([A-Z]\S+\.?) ([A-Z]\S+\.? )?([A-Z]\S+\.?)$',
'Does not look like a name'
)
})
hp.validate_params({
'name': 'Florian Heß'
})
assert hp.fields['name'].value == 'Florian Heß'
with pytest.raises(ValidationError):
assert hp.validate_params({ 'name': '123' })