diff --git a/requirements.txt b/requirements.txt index 783686de9..6224a91e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -29,6 +29,6 @@ notifications-python-client>=3.1,<3.2 awscli>=1.11,<1.12 awscli-cwlogs>=1.4,<1.5 -git+https://github.com/alphagov/notifications-utils.git@14.0.1#egg=notifications-utils==14.0.1 +git+https://github.com/alphagov/notifications-utils.git@14.0.2#egg=notifications-utils==14.0.2 git+https://github.com/alphagov/boto.git@2.43.0-patch3#egg=boto==2.43.0-patch3 diff --git a/tests/app/notifications/rest/test_send_notification.py b/tests/app/notifications/rest/test_send_notification.py index 7c90f0c99..d6a4e9c31 100644 --- a/tests/app/notifications/rest/test_send_notification.py +++ b/tests/app/notifications/rest/test_send_notification.py @@ -133,10 +133,39 @@ def test_send_notification_with_placeholders_replaced(notify_api, sample_email_t assert response_data['subject'] == 'Jo' -def test_send_notification_with_placeholders_replaced_with_list( +@pytest.mark.parametrize('personalisation, expected_body, expected_subject', [ + ( + ['Jo', 'John', 'Josephine'], + ( + 'Hello \n\n' + '* Jo\n' + '* John\n' + '* Josephine\n' + 'This is an email from GOV.\u200BUK' + ), + 'Jo, John and Josephine', + ), + ( + 6, + ( + 'Hello 6\n' + 'This is an email from GOV.\u200BUK' + ), + '6', + ), + pytest.mark.xfail(( + None, + ('we consider None equivalent to missing personalisation'), + '', + )), +]) +def test_send_notification_with_placeholders_replaced_with_unusual_types( client, sample_email_template_with_placeholders, - mocker + mocker, + personalisation, + expected_body, + expected_subject, ): mocked = mocker.patch('app.celery.provider_tasks.deliver_email.apply_async') @@ -147,7 +176,7 @@ def test_send_notification_with_placeholders_replaced_with_list( 'to': 'ok@ok.com', 'template': str(sample_email_template_with_placeholders.id), 'personalisation': { - 'name': ['Jo', 'John', 'Josephine'] + 'name': personalisation } } ), @@ -157,16 +186,10 @@ def test_send_notification_with_placeholders_replaced_with_list( ] ) - response_data = json.loads(response.data)['data'] assert response.status_code == 201 - assert response_data['body'] == ( - 'Hello \n\n' - '* Jo\n' - '* John\n' - '* Josephine\n' - 'This is an email from GOV.\u200BUK' - ) - assert response_data['subject'] == 'Jo, John and Josephine' + response_data = json.loads(response.data)['data'] + assert response_data['body'] == expected_body + assert response_data['subject'] == expected_subject def test_should_not_send_notification_for_archived_template(notify_api, sample_template):