diff --git a/app/models.py b/app/models.py index 214979611..e6a3d0bad 100644 --- a/app/models.py +++ b/app/models.py @@ -635,8 +635,6 @@ class TemplateBase(db.Model): if self.template_type == LETTER_TYPE: if self.service_letter_contact_id is not None: return self.service_letter_contact.contact_block - else: - return self.service.get_default_letter_contact() elif self.template_type == EMAIL_TYPE: return self.service.get_default_reply_to_email_address() elif self.template_type == SMS_TYPE: diff --git a/tests/app/celery/test_tasks.py b/tests/app/celery/test_tasks.py index 18f1fa9e5..8c00bd4a7 100644 --- a/tests/app/celery/test_tasks.py +++ b/tests/app/celery/test_tasks.py @@ -993,8 +993,8 @@ def test_save_sms_does_not_send_duplicate_and_does_not_put_in_retry_queue(sample def test_save_letter_saves_letter_to_database(mocker, notify_db_session): service = create_service() - create_letter_contact(service=service, contact_block="Address contact", is_default=True) - template = create_template(service=service, template_type=LETTER_TYPE) + contact_block = create_letter_contact(service=service, contact_block="Address contact", is_default=True) + template = create_template(service=service, template_type=LETTER_TYPE, reply_to=contact_block.id) job = create_job(template=template) mocker.patch('app.celery.tasks.create_random_identifier', return_value="this-is-random-in-real-life") @@ -1037,7 +1037,7 @@ def test_save_letter_saves_letter_to_database(mocker, notify_db_session): assert notification_db.sent_by is None assert notification_db.personalisation == personalisation assert notification_db.reference == "this-is-random-in-real-life" - assert notification_db.reply_to_text == "Address contact" + assert notification_db.reply_to_text == contact_block.contact_block def test_save_letter_uses_template_reply_to_text(mocker, notify_db_session): diff --git a/tests/app/template/test_rest.py b/tests/app/template/test_rest.py index 89830827e..5c732808e 100644 --- a/tests/app/template/test_rest.py +++ b/tests/app/template/test_rest.py @@ -611,20 +611,33 @@ def test_create_a_template_with_foreign_service_reply_to(admin_request, sample_u ) -def test_get_template_reply_to(client, sample_letter_template): +@pytest.mark.parametrize('template_default, service_default', + [('template address', 'service address'), + (None, 'service address'), + ('template address', None), + ]) +def test_get_template_reply_to(client, sample_service, template_default, service_default): auth_header = create_authorization_header() - letter_contact = create_letter_contact(sample_letter_template.service, "Edinburgh, ED1 1AA") - sample_letter_template.reply_to = str(letter_contact.id) + if service_default: + create_letter_contact( + service=sample_service, contact_block=service_default, is_default=True + ) + if template_default: + template_default_contact = create_letter_contact( + service=sample_service, contact_block=template_default, is_default=False + ) + reply_to_id = str(template_default_contact.id) if template_default else None + template = create_template(service=sample_service, template_type='letter', reply_to=reply_to_id) - resp = client.get('/service/{}/template/{}'.format(sample_letter_template.service_id, sample_letter_template.id), + resp = client.get('/service/{}/template/{}'.format(template.service_id, template.id), headers=[auth_header]) assert resp.status_code == 200, resp.get_data(as_text=True) json_resp = json.loads(resp.get_data(as_text=True)) assert 'service_letter_contact_id' not in json_resp['data'] - assert json_resp['data']['reply_to'] == str(letter_contact.id) - assert json_resp['data']['reply_to_text'] == letter_contact.contact_block + assert json_resp['data']['reply_to'] == reply_to_id + assert json_resp['data']['reply_to_text'] == template_default def test_update_template_reply_to(client, sample_letter_template): diff --git a/tests/app/v2/notifications/test_post_letter_notifications.py b/tests/app/v2/notifications/test_post_letter_notifications.py index b433f83cd..cda66f1c9 100644 --- a/tests/app/v2/notifications/test_post_letter_notifications.py +++ b/tests/app/v2/notifications/test_post_letter_notifications.py @@ -330,8 +330,8 @@ def test_post_letter_notification_persists_notification_reply_to_text( ): service = create_service(service_permissions=[LETTER_TYPE]) service_address = "12 Main Street, London" - create_letter_contact(service=service, contact_block=service_address, is_default=True) - template = create_template(service=service, template_type='letter') + letter_contact = create_letter_contact(service=service, contact_block=service_address, is_default=True) + template = create_template(service=service, template_type='letter', reply_to=letter_contact.id) data = { "template_id": template.id, "personalisation": {'address_line_1': 'Foo', 'address_line_2': 'Bar', 'postcode': 'Baz'}