Add better error if user goes over line limit

Don’t make people count the number of lines themselves.
This commit is contained in:
Chris Hill-Scott
2017-03-03 16:15:15 +00:00
parent 63f52391fe
commit 3dabd39c41
2 changed files with 7 additions and 4 deletions

View File

@@ -496,8 +496,11 @@ class ServiceLetterContactBlock(Form):
)
def validate_letter_contact_block(form, field):
if field.data.strip().count('\n') >= 10:
raise ValidationError('Can only have 10 lines')
line_count = field.data.strip().count('\n')
if line_count >= 10:
raise ValidationError(
'Contains {} lines, maximum is 10'.format(line_count + 1)
)
class ServiceBrandingOrg(Form):

View File

@@ -627,12 +627,12 @@ def test_set_letter_contact_block_has_max_10_lines(
service_one['can_send_letters'] = True
response = logged_in_client.post(
url_for('main.service_set_letter_contact_block', service_id=service_one['id']),
data={'letter_contact_block': '\n'.join(map(str, range(0, 12)))}
data={'letter_contact_block': '\n'.join(map(str, range(0, 11)))}
)
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
error_message = page.find('span', class_='error-message').text.strip()
assert error_message == 'Can only have 10 lines'
assert error_message == 'Contains 11 lines, maximum is 10'
def test_should_show_branding(