Skip to content
Snippets Groups Projects
Commit 15b43573 authored by Thorge Petersen's avatar Thorge Petersen
Browse files

Override default tag_name_validator to allow any tag name

parent de06e5fa
No related branches found
No related tags found
1 merge request!48Merge dev into master
...@@ -105,3 +105,11 @@ def test_validate_licenseAttributionByText(): ...@@ -105,3 +105,11 @@ def test_validate_licenseAttributionByText():
('extras', 0, 'key'): 'licenseAttributionByText', ('extras', 0, 'key'): 'licenseAttributionByText',
('extras', 0, 'value'): ''} ('extras', 0, 'value'): ''}
validate_licenseAttributionByText('key', data, {}, None) validate_licenseAttributionByText('key', data, {}, None)
def test_tag_name_validator_invalid():
with pytest.raises(Exception):
tag_name_validator('Foo\nBar', None)
def test_tag_name_validator_valid():
tag_name_validator('Regionalplan für den Planungsraum_I: (5.8 – Windenergie_an_Land)', None)
...@@ -293,6 +293,7 @@ def tag_string_convert(key, data, errors, context): ...@@ -293,6 +293,7 @@ def tag_string_convert(key, data, errors, context):
for tag in tags: for tag in tags:
toolkit.get_validator('tag_length_validator')(tag, context) toolkit.get_validator('tag_length_validator')(tag, context)
tag_name_validator(tag, context)
def validate_relatedPackage(data): def validate_relatedPackage(data):
...@@ -313,6 +314,15 @@ def validate_formats(data, errors): ...@@ -313,6 +314,15 @@ def validate_formats(data, errors):
return data return data
def tag_name_validator(value, context):
"""Allow tag name to contain any characters but no newlines
"""
tagname_match = re.compile(r'/^(?=.*[^\n])[^\n]*$', re.UNICODE)
if not tagname_match.match(value):
raise toolkit.Invalid(_('Invalid tag: "%s". Tags cannot contain line breaks.') % (value))
return value
def get_validators(): def get_validators():
return { return {
'known_spatial_uri': known_spatial_uri, 'known_spatial_uri': known_spatial_uri,
...@@ -320,4 +330,5 @@ def get_validators(): ...@@ -320,4 +330,5 @@ def get_validators():
'validate_licenseAttributionByText': validate_licenseAttributionByText, 'validate_licenseAttributionByText': validate_licenseAttributionByText,
'validate_relatedPackage': validate_relatedPackage, 'validate_relatedPackage': validate_relatedPackage,
'odsh_validate_format': validate_formats, 'odsh_validate_format': validate_formats,
'tag_name_validator': tag_name_validator,
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment