mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 16:24:08 -04:00
Merge pull request #3240 from alphagov/recipient-address
Show the first line of the address from the to field.
This commit is contained in:
@@ -271,7 +271,8 @@ def test_letters_with_status_virus_scan_failed_shows_a_failure_description(
|
||||
mock_get_service_data_retention,
|
||||
mock_get_api_keys,
|
||||
):
|
||||
notifications = create_notifications(template_type='letter', status='virus-scan-failed', is_precompiled_letter=True)
|
||||
notifications = create_notifications(template_type='letter', status='virus-scan-failed', is_precompiled_letter=True,
|
||||
client_reference='client reference')
|
||||
mocker.patch('app.notification_api_client.get_notifications_for_service', return_value=notifications)
|
||||
|
||||
page = client_request.get(
|
||||
@@ -297,7 +298,8 @@ def test_should_not_show_preview_link_for_precompiled_letters_in_virus_states(
|
||||
mock_get_no_api_keys,
|
||||
letter_status,
|
||||
):
|
||||
notifications = create_notifications(template_type='letter', status=letter_status)
|
||||
notifications = create_notifications(template_type='letter', status=letter_status,
|
||||
is_precompiled_letter=True, client_reference='ref')
|
||||
mocker.patch('app.notification_api_client.get_notifications_for_service', return_value=notifications)
|
||||
|
||||
page = client_request.get(
|
||||
@@ -692,11 +694,11 @@ def test_sending_status_hint_displays_correctly_on_notifications_page(
|
||||
assert bool(page.select('.align-with-message-body')) is single_line
|
||||
|
||||
|
||||
@pytest.mark.parametrize("is_precompiled_letter,expected_hint", [
|
||||
(True, "Provided as PDF"),
|
||||
(False, "template subject")
|
||||
@pytest.mark.parametrize("is_precompiled_letter,expected_address,expected_hint", [
|
||||
(True, "Full Name,\nFirst address line\npostcode", "ref"),
|
||||
(False, "Full Name,\nFirst address line\npostcode", "template subject")
|
||||
])
|
||||
def test_should_expected_hint_for_letters(
|
||||
def test_should_show_address_and_hint_for_letters(
|
||||
client_request,
|
||||
service_one,
|
||||
mock_get_service_statistics,
|
||||
@@ -704,12 +706,15 @@ def test_should_expected_hint_for_letters(
|
||||
mock_get_no_api_keys,
|
||||
mocker,
|
||||
is_precompiled_letter,
|
||||
expected_address,
|
||||
expected_hint
|
||||
):
|
||||
notifications = create_notifications(
|
||||
template_type='letter',
|
||||
subject=expected_hint,
|
||||
is_precompiled_letter=is_precompiled_letter,
|
||||
client_reference=expected_hint,
|
||||
to=expected_address
|
||||
)
|
||||
mocker.patch('app.notification_api_client.get_notifications_for_service', return_value=notifications)
|
||||
|
||||
@@ -719,4 +724,5 @@ def test_should_expected_hint_for_letters(
|
||||
message_type='letter',
|
||||
)
|
||||
|
||||
assert page.select_one('a.file-list-filename').text == 'Full Name'
|
||||
assert page.find('p', {'class': 'file-list-hint'}).text.strip() == expected_hint
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import urllib
|
||||
from unittest.mock import Mock
|
||||
|
||||
import pytest
|
||||
from flask import make_response, url_for
|
||||
from requests import RequestException
|
||||
|
||||
from app.main.views.uploads import format_recipient
|
||||
from app.utils import normalize_spaces
|
||||
from tests.conftest import SERVICE_ONE_ID
|
||||
|
||||
@@ -350,8 +352,11 @@ def test_uploaded_letter_preview(
|
||||
fake_uuid,
|
||||
):
|
||||
mocker.patch('app.main.views.uploads.service_api_client')
|
||||
recipient = 'Bugs Bunny\n123 Big Hole\rLooney Town'
|
||||
mocker.patch('app.main.views.uploads.get_letter_metadata', return_value={
|
||||
'filename': 'my_letter.pdf', 'page_count': '1', 'status': 'valid'})
|
||||
'filename': 'my_letter.pdf', 'page_count': '1', 'status': 'valid',
|
||||
'recipient': urllib.parse.quote(recipient)
|
||||
})
|
||||
|
||||
service_one['restricted'] = False
|
||||
client_request.login(active_user_with_permissions, service=service_one)
|
||||
@@ -455,7 +460,7 @@ def test_uploaded_letter_preview_image_does_not_show_overlay_if_no_content_outsi
|
||||
|
||||
|
||||
def test_send_uploaded_letter_sends_letter_and_redirects_to_notification_page(mocker, service_one, client_request):
|
||||
metadata = {'filename': 'my_file.pdf', 'page_count': '1', 'status': 'valid'}
|
||||
metadata = {'filename': 'my_file.pdf', 'page_count': '1', 'status': 'valid', 'recipient': 'address'}
|
||||
|
||||
mocker.patch('app.main.views.uploads.get_letter_pdf_and_metadata', return_value=('file', metadata))
|
||||
mock_send = mocker.patch('app.main.views.uploads.notification_api_client.send_precompiled_letter')
|
||||
@@ -475,7 +480,7 @@ def test_send_uploaded_letter_sends_letter_and_redirects_to_notification_page(mo
|
||||
_external=True
|
||||
)
|
||||
)
|
||||
mock_send.assert_called_once_with(SERVICE_ONE_ID, 'my_file.pdf', file_id, 'first')
|
||||
mock_send.assert_called_once_with(SERVICE_ONE_ID, 'my_file.pdf', file_id, 'first', 'address')
|
||||
|
||||
|
||||
@pytest.mark.parametrize('permissions', [
|
||||
@@ -522,3 +527,15 @@ def test_send_uploaded_letter_when_metadata_states_pdf_is_invalid(mocker, servic
|
||||
_expected_status=403
|
||||
)
|
||||
assert not mock_send.called
|
||||
|
||||
|
||||
@pytest.mark.parametrize('original_address,expected_address', [
|
||||
('The Queen, Buckingham Palace, SW1 1AA', 'The Queen, Buckingham Palace, SW1 1AA'),
|
||||
('The Queen Buckingham Palace SW1 1AA', 'The Queen Buckingham Palace SW1 1AA'),
|
||||
('The Queen,\nBuckingham Palace,\r\nSW1 1AA', 'The Queen, Buckingham Palace, SW1 1AA'),
|
||||
('The Queen ,,\nBuckingham Palace,\rSW1 1AA,', 'The Queen, Buckingham Palace, SW1 1AA'),
|
||||
(' The Queen\n Buckingham Palace\n SW1 1AA', 'The Queen, Buckingham Palace, SW1 1AA'),
|
||||
('', ''),
|
||||
])
|
||||
def test_format_recipient(original_address, expected_address):
|
||||
assert format_recipient(urllib.parse.quote(original_address)) == expected_address
|
||||
|
||||
Reference in New Issue
Block a user