Show row errors before trial mode errors

It’s useful to be able to play with the CSV upload thing and find out
how it works before you’re interrupted by the error telling you that
you’ve got as far as you can in trial mode.
This commit is contained in:
Chris Hill-Scott
2017-09-14 12:21:40 +01:00
parent 1be2101d07
commit c26d308a32
2 changed files with 37 additions and 3 deletions

View File

@@ -459,15 +459,17 @@ 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 or
data['trying_to_send_letters_in_trial_mode']
data['recipients'].missing_column_headers
):
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']:
if (
data['errors'] or
data['trying_to_send_letters_in_trial_mode']
):
return render_template('views/check/column-errors.html', **data)
return render_template('views/check/ok.html', **data)

View File

@@ -1631,6 +1631,38 @@ def test_check_messages_shows_trial_mode_error_for_letters(
assert not error
def test_check_messages_shows_data_errors_before_trial_mode_errors_for_letters(
mocker,
client_request,
mock_get_service_letter_template,
mock_has_permissions,
mock_get_users_by_service,
mock_get_detailed_service_for_today,
):
mocker.patch('app.main.views.send.s3download', return_value='\n'.join(
['address_line_1,address_line_2,postcode,'] +
[' , ,11SW1 1AA']
))
with client_request.session_transaction() as session:
session['upload_data'] = {'template_id': '', 'original_file_name': 'example.xlsx'}
page = client_request.get(
'main.check_messages',
service_id=SERVICE_ONE_ID,
template_type='letter',
upload_id=uuid.uuid4(),
_test_page_title=False,
)
assert normalize_spaces(page.select_one('.banner-dangerous').text) == (
'There is a problem with example.xlsx '
'You need to enter missing data in 1 row '
'Skip to file contents'
)
def test_generate_test_letter_doesnt_block_in_trial_mode(
client_request,
mocker,