diff --git a/app/main/views/send.py b/app/main/views/send.py
index b806af7c5..475e56798 100644
--- a/app/main/views/send.py
+++ b/app/main/views/send.py
@@ -457,14 +457,15 @@ def check_messages(service_id, template_type, upload_id):
data['recipients'].too_many_rows or
not data['count_of_recipients'] or
not data['recipients'].has_recipient_columns or
- data['recipients'].missing_column_headers
+ data['recipients'].missing_column_headers or
+ data['trying_to_send_letters_in_trial_mode']
):
return render_template('views/check/column-errors.html', **data)
if data['row_errors']:
return render_template('views/check/row-errors.html', **data)
- if data['errors'] or data['trying_to_send_letters_in_trial_mode']:
+ if data['errors']:
return render_template('views/check/column-errors.html', **data)
return render_template('views/check/ok.html', **data)
diff --git a/app/templates/views/check/column-errors.html b/app/templates/views/check/column-errors.html
index 9dbd9a548..491eade0f 100644
--- a/app/templates/views/check/column-errors.html
+++ b/app/templates/views/check/column-errors.html
@@ -83,10 +83,6 @@
{% include "partials/check/not-allowed-to-send-to.html" %}
{% endwith %}
- {% elif recipients.more_rows_than_can_send %}
-
- {% include "partials/check/too-many-messages.html" %}
-
{% elif trying_to_send_letters_in_trial_mode %}
@@ -98,6 +94,10 @@
can only preview how your letters will look
+ {% elif recipients.more_rows_than_can_send %}
+
+ {% include "partials/check/too-many-messages.html" %}
+
{% endif %}
{{ skip_to_file_contents() }}
diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py
index ad6ef2254..906bfa66f 100644
--- a/tests/app/main/views/test_send.py
+++ b/tests/app/main/views/test_send.py
@@ -1583,6 +1583,10 @@ def test_check_messages_shows_trial_mode_error(
(mock_get_service, True),
(mock_get_live_service, False),
])
+@pytest.mark.parametrize('number_of_rows, expected_error_message', [
+ (1, 'You can’t send this letter'),
+ (111, 'You can’t send these letters'),
+])
def test_check_messages_shows_trial_mode_error_for_letters(
client_request,
api_user_active,
@@ -1593,14 +1597,16 @@ def test_check_messages_shows_trial_mode_error_for_letters(
mocker,
service_mock,
error_should_be_shown,
+ number_of_rows,
+ expected_error_message,
):
service_mock(mocker, api_user_active)
- mocker.patch('app.main.views.send.s3download', return_value='''
- address_line_1,address_line_2,postcode,
- First Last, 123 Street, SW1 1AA
- ''')
+ mocker.patch('app.main.views.send.s3download', return_value='\n'.join(
+ ['address_line_1,address_line_2,postcode,'] +
+ ['First Last, 123 Street, SW1 1AA'] * number_of_rows
+ ))
with client_request.session_transaction() as session:
session['upload_data'] = {'template_id': ''}
@@ -1617,10 +1623,10 @@ def test_check_messages_shows_trial_mode_error_for_letters(
if error_should_be_shown:
assert normalize_spaces(error[0].text) == (
- 'You can’t send this letter '
+ '{} '
'In trial mode you can only preview how your letters will look '
'Skip to file contents'
- )
+ ).format(expected_error_message)
else:
assert not error
@@ -1668,7 +1674,7 @@ def test_non_ascii_characters_in_letter_recipients_file_shows_error(
api_user_active,
mock_login,
mock_get_users_by_service,
- mock_get_service,
+ mock_get_live_service,
mock_has_permissions,
mock_get_service_letter_template,
mock_get_detailed_service_for_today,