mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-06 18:38:26 -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
|
import itertools
|
||||||
from string import ascii_uppercase
|
from string import ascii_uppercase
|
||||||
|
|
||||||
|
from orderedset import OrderedSet
|
||||||
from contextlib import suppress
|
from contextlib import suppress
|
||||||
from zipfile import BadZipFile
|
from zipfile import BadZipFile
|
||||||
from xlrd.biffh import XLRDError
|
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',
|
template.template_type == 'letter',
|
||||||
not request.args.get('from_test'),
|
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 %}
|
{% 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 }}">
|
<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='a column called',
|
||||||
prefix_plural='columns 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(
|
def test_generate_test_letter_doesnt_block_in_trial_mode(
|
||||||
client_request,
|
client_request,
|
||||||
mocker,
|
mocker,
|
||||||
|
|||||||
Reference in New Issue
Block a user