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' })