From ee5888f07f811065adcb98d01f4668de9cb5ea57 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Thu, 21 Sep 2017 13:37:57 +0100 Subject: [PATCH] Fix sending emails with no logo Code was not expecting logo to be `None`, thereby causing the task to throw an exception, and retry until eventually putting the email in technical error (for services with org branding but no logo). --- app/delivery/send_to_providers.py | 3 ++- tests/app/delivery/test_send_to_providers.py | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/delivery/send_to_providers.py b/app/delivery/send_to_providers.py index 7d90b07d3..6cbd00e2d 100644 --- a/app/delivery/send_to_providers.py +++ b/app/delivery/send_to_providers.py @@ -179,10 +179,11 @@ def get_html_email_options(service): govuk_banner = service.branding not in (BRANDING_ORG, BRANDING_ORG_BANNER) brand_banner = service.branding == BRANDING_ORG_BANNER if service.organisation and service.branding != BRANDING_GOVUK: + logo_url = get_logo_url( current_app.config['ADMIN_BASE_URL'], service.organisation.logo - ) + ) if service.organisation.logo else None branding = { 'brand_colour': service.organisation.colour, diff --git a/tests/app/delivery/test_send_to_providers.py b/tests/app/delivery/test_send_to_providers.py index fb52e8b98..c88b7f380 100644 --- a/tests/app/delivery/test_send_to_providers.py +++ b/tests/app/delivery/test_send_to_providers.py @@ -459,6 +459,18 @@ def test_get_html_email_renderer_prepends_logo_path(notify_api): assert renderer['brand_logo'] == 'http://static-logos.notify.tools/justice-league.png' +def test_get_html_email_renderer_handles_org_without_logo(notify_api): + Service = namedtuple('Service', ['branding', 'organisation']) + Organisation = namedtuple('Organisation', ['colour', 'name', 'logo']) + + org = Organisation(colour='#000000', logo=None, name='Justice League') + service = Service(branding=BRANDING_ORG, organisation=org) + + renderer = send_to_providers.get_html_email_options(service) + + assert renderer['brand_logo'] is None + + @pytest.mark.parametrize('base_url, expected_url', [ # don't change localhost to prevent errors when testing locally ('http://localhost:6012', 'http://static-logos.notify.tools/filename.png'),