Use the letter_branding logo if it exists otherwise fall back to the dvla_organisation logo.

This commit is contained in:
Rebecca Law
2019-01-23 12:51:09 +00:00
parent f11aa55e0b
commit e4ea208d06
3 changed files with 45 additions and 5 deletions

View File

@@ -52,11 +52,13 @@ from app.models import (
def create_letters_pdf(self, notification_id):
try:
notification = get_notification_by_id(notification_id, _raise=True)
# We only need this while we are migrating to the new letter_branding model
letter_logo_file_name = notification.service.letter_branding.filename if notification.service.letter_branding\
else notification.service.dvla_organisation.filename
pdf_data, billable_units = get_letters_pdf(
notification.template,
contact_block=notification.reply_to_text,
filename=notification.service.dvla_organisation.filename,
filename=letter_logo_file_name,
values=notification.personalisation
)

View File

@@ -274,13 +274,15 @@ def preview_letter_template_by_notification_id(service_id, notification_id, file
}
service = dao_fetch_service_by_id(service_id)
# We only need this while we are migrating to the new letter_branding model
letter_logo_filename = service.letter_branding.filename if service.letter_branding \
else service.dvla_organisation.filename
data = {
'letter_contact_block': notification.reply_to_text,
'template': template_for_letter_print,
'values': notification.personalisation,
'date': notification.created_at.isoformat(),
'filename': service.dvla_organisation.filename,
'filename': letter_logo_filename,
}
url = '{}/preview.{}{}'.format(

View File

@@ -39,7 +39,7 @@ from app.models import (
NOTIFICATION_VIRUS_SCAN_FAILED,
)
from tests.app.db import create_notification
from tests.app.db import create_notification, create_letter_branding
from tests.conftest import set_config_values
@@ -182,6 +182,42 @@ def test_create_letters_pdf_sets_technical_failure_max_retries(mocker, sample_le
mock_update_noti.assert_called_once_with(sample_letter_notification.id, 'technical-failure')
# We only need this while we are migrating to the new letter_branding model
def test_create_letters_gets_the_right_logo_when_service_has_dvla_logo(
notify_api, mocker, sample_letter_notification
):
mock_get_letters_pdf = mocker.patch('app.celery.letters_pdf_tasks.get_letters_pdf', return_value=(b'\x00\x01', 1))
mocker.patch('app.letters.utils.upload_letter_pdf')
mocker.patch('app.celery.letters_pdf_tasks.update_notification_status_by_id')
create_letters_pdf(sample_letter_notification.id)
mock_get_letters_pdf.assert_called_once_with(
sample_letter_notification.template,
contact_block=sample_letter_notification.reply_to_text,
filename=sample_letter_notification.service.dvla_organisation.filename,
values=sample_letter_notification.personalisation
)
# We only need this while we are migrating to the new letter_branding model
def test_create_letters_gets_the_right_logo_when_service_has_letter_branding_logo(
notify_api, mocker, sample_letter_notification
):
letter_branding = create_letter_branding(name='test brand', filename='test-brand', platform_default=False)
sample_letter_notification.service.letter_branding = letter_branding
mock_get_letters_pdf = mocker.patch('app.celery.letters_pdf_tasks.get_letters_pdf', return_value=(b'\x00\x01', 1))
mocker.patch('app.letters.utils.upload_letter_pdf')
mocker.patch('app.celery.letters_pdf_tasks.update_notification_status_by_id')
create_letters_pdf(sample_letter_notification.id)
mock_get_letters_pdf.assert_called_once_with(
sample_letter_notification.template,
contact_block=sample_letter_notification.reply_to_text,
filename=sample_letter_notification.service.letter_branding.filename,
values=sample_letter_notification.personalisation
)
def test_collate_letter_pdfs_for_day(notify_api, mocker):
mock_s3 = mocker.patch('app.celery.tasks.s3.get_s3_bucket_objects')
mock_group_letters = mocker.patch('app.celery.letters_pdf_tasks.group_letters', return_value=[