mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-05 18:48:25 -04:00
Merge pull request #1525 from alphagov/only-mandate-mandatory-columns
Only mandate mandatory address columns
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import itertools
|
||||
from string import ascii_uppercase
|
||||
|
||||
from orderedset import OrderedSet
|
||||
from contextlib import suppress
|
||||
from zipfile import BadZipFile
|
||||
from xlrd.biffh import XLRDError
|
||||
@@ -445,6 +446,7 @@ def _check_messages(service_id, template_type, upload_id, letters_as_pdf=False):
|
||||
template.template_type == 'letter',
|
||||
not request.args.get('from_test'),
|
||||
)),
|
||||
required_recipient_columns=OrderedSet(recipients.recipient_column_headers) - optional_address_columns
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
{% elif not recipients.has_recipient_columns %}
|
||||
|
||||
<h1 class='banner-title' data-module="track-error" data-error-type="Missing recipient columns" data-error-label="{{ upload_id }}">
|
||||
Your file needs {{ recipients.recipient_column_headers | formatted_list(
|
||||
Your file needs {{ required_recipient_columns | formatted_list(
|
||||
prefix='a column called',
|
||||
prefix_plural='columns called'
|
||||
) }}
|
||||
|
||||
@@ -1663,6 +1663,38 @@ def test_check_messages_shows_data_errors_before_trial_mode_errors_for_letters(
|
||||
)
|
||||
|
||||
|
||||
def test_check_messages_column_error_doesnt_show_optional_columns(
|
||||
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,foo'] +
|
||||
['First Lastname,1 Example Road,SW1 1AA']
|
||||
))
|
||||
|
||||
with client_request.session_transaction() as session:
|
||||
session['upload_data'] = {'template_id': '', 'original_file_name': ''}
|
||||
|
||||
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) == (
|
||||
'Your file needs columns called ‘address line 1’, ‘address line 2’ and ‘postcode’ '
|
||||
'Right now it has columns called ‘address_line_1’, ‘address_line_2’ and ‘foo’. '
|
||||
'Skip to file contents'
|
||||
)
|
||||
|
||||
|
||||
def test_generate_test_letter_doesnt_block_in_trial_mode(
|
||||
client_request,
|
||||
mocker,
|
||||
|
||||
Reference in New Issue
Block a user