Allow underscores in SMS senders

This commit is contained in:
Chris Hill-Scott
2020-04-02 15:57:46 +01:00
parent c400695f68
commit 1fe3f1871e
3 changed files with 14 additions and 4 deletions

View File

@@ -46,7 +46,7 @@ from app.main.validators import (
Blacklist,
CsvFileValidator,
DoesNotStartWithDoubleZero,
LettersNumbersAndFullStopsOnly,
LettersNumbersFullStopsAndUnderscoresOnly,
MustContainAlphanumericCharacters,
NoCommasInPlaceHolders,
NoEmbeddedImagesInSVG,
@@ -1086,7 +1086,7 @@ class ServiceSmsSenderForm(StripWhitespaceForm):
DataRequired(message="Cannot be empty"),
Length(max=11, message="Enter 11 characters or fewer"),
Length(min=4, message="Enter 4 characters or more"),
LettersNumbersAndFullStopsOnly(),
LettersNumbersFullStopsAndUnderscoresOnly(),
DoesNotStartWithDoubleZero(),
]
)

View File

@@ -103,9 +103,9 @@ class OnlySMSCharacters:
)
class LettersNumbersAndFullStopsOnly:
class LettersNumbersFullStopsAndUnderscoresOnly:
regex = re.compile(r'^[a-zA-Z0-9\s\.]+$')
regex = re.compile(r'^[a-zA-Z0-9\s\._]+$')
def __init__(self, message='Use letters and numbers only'):
self.message = message

View File

@@ -215,6 +215,16 @@ def test_sms_sender_form_validation(
form.validate()
assert 'Use letters and numbers only' == form.errors['sms_sender'][0]
# Underscores are allowed
form.sms_sender.data = 'UK_GOV'
form.validate()
assert not form.errors
# Full stops are allowed
form.sms_sender.data = 'UK.GOV'
form.validate()
assert not form.errors
form.sms_sender.data = '333'
form.validate()
assert 'Enter 4 characters or more' == form.errors['sms_sender'][0]