From 35e39bcfa882161571e2d6cc8d6ea15cc6cefd93 Mon Sep 17 00:00:00 2001 From: Katie Smith Date: Fri, 24 Jan 2020 10:15:19 +0000 Subject: [PATCH] Save recipient address in process_sanitised_letter task If the letter passed sanitisation, the recipient address will be returned from template preview, so we want to save this as the `to` field of the notification. --- app/celery/letters_pdf_tasks.py | 3 ++- tests/app/celery/test_letters_pdf_tasks.py | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/celery/letters_pdf_tasks.py b/app/celery/letters_pdf_tasks.py index 6a0a72e7f..6f31d2f91 100644 --- a/app/celery/letters_pdf_tasks.py +++ b/app/celery/letters_pdf_tasks.py @@ -347,7 +347,8 @@ def process_sanitised_letter(sanitise_data): update_letter_pdf_status( reference=notification.reference, status=NOTIFICATION_DELIVERED if is_test_key else NOTIFICATION_CREATED, - billable_units=billable_units + billable_units=billable_units, + recipient_address=letter_details['address'] ) except BotoClientError: diff --git a/tests/app/celery/test_letters_pdf_tasks.py b/tests/app/celery/test_letters_pdf_tasks.py index bc280dce7..58568d52e 100644 --- a/tests/app/celery/test_letters_pdf_tasks.py +++ b/tests/app/celery/test_letters_pdf_tasks.py @@ -780,12 +780,14 @@ def test_process_sanitised_letter_with_valid_letter( 'invalid_pages': None, 'validation_status': 'passed', 'filename': filename, - 'notification_id': str(sample_letter_notification.id) + 'notification_id': str(sample_letter_notification.id), + 'address': 'A. User\nThe house on the corner' }) process_sanitised_letter(encrypted_data) assert sample_letter_notification.status == expected_status assert sample_letter_notification.billable_units == 1 + assert sample_letter_notification.to == 'A. User\nThe house on the corner' assert not [x for x in scan_bucket.objects.all()] assert not [x for x in template_preview_bucket.objects.all()] @@ -823,7 +825,8 @@ def test_process_sanitised_letter_with_invalid_letter(sample_letter_notification 'invalid_pages': [1], 'validation_status': 'failed', 'filename': filename, - 'notification_id': str(sample_letter_notification.id) + 'notification_id': str(sample_letter_notification.id), + 'address': None, }) process_sanitised_letter(encrypted_data) @@ -851,7 +854,8 @@ def test_process_sanitised_letter_when_letter_status_is_not_pending_virus_scan( 'invalid_pages': None, 'validation_status': 'passed', 'filename': 'NOTIFY.{}'.format(sample_letter_notification.reference), - 'notification_id': str(sample_letter_notification.id) + 'notification_id': str(sample_letter_notification.id), + 'address': None }) process_sanitised_letter(encrypted_data) @@ -871,7 +875,8 @@ def test_process_sanitised_letter_puts_letter_into_tech_failure_for_boto_errors( 'invalid_pages': None, 'validation_status': 'passed', 'filename': 'NOTIFY.{}'.format(sample_letter_notification.reference), - 'notification_id': str(sample_letter_notification.id) + 'notification_id': str(sample_letter_notification.id), + 'address': None }) with pytest.raises(NotificationTechnicalFailureException):