From 0ef063ab141792079a8157e38fbdc98ad6a98948 Mon Sep 17 00:00:00 2001 From: Leo Hemsted Date: Wed, 2 Dec 2020 10:17:21 +0000 Subject: [PATCH] return allowed_broadcast_provider via get by service id --- app/schemas.py | 5 +++++ tests/app/service/test_rest.py | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/schemas.py b/app/schemas.py index 5c9d4f228..c7477c6ab 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -222,6 +222,10 @@ class ServiceSchema(BaseSchema, UUIDsAsStringsMixin): organisation = field_for(models.Service, 'organisation') override_flag = False go_live_at = field_for(models.Service, 'go_live_at', format=DATETIME_FORMAT_NO_TIMEZONE) + allowed_broadcast_provider = fields.Method(dump_only=True, serialize='_get_allowed_broadcast_provider') + + def _get_allowed_broadcast_provider(self, service): + return service.allowed_broadcast_provider def get_letter_logo_filename(self, service): return service.letter_branding and service.letter_branding.filename @@ -261,6 +265,7 @@ class ServiceSchema(BaseSchema, UUIDsAsStringsMixin): 'version', 'guest_list', 'broadcast_messages', + 'service_broadcast_provider_restriction', ) strict = True diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 06b355543..c7f02e5f5 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -19,6 +19,7 @@ from app.models import ( Notification, Permission, Service, + ServiceBroadcastProviderRestriction, ServiceEmailReplyTo, ServiceLetterContact, ServicePermission, @@ -271,10 +272,21 @@ def test_get_service_by_id(admin_request, sample_service): 'volume_email', 'volume_letter', 'volume_sms', - } +def test_get_service_by_id_returns_allowed_broadcast_provider(notify_db, admin_request, sample_service): + notify_db.session.add(ServiceBroadcastProviderRestriction( + service=sample_service, + provider='ee' + )) + notify_db.session.commit() + + json_resp = admin_request.get('service.get_service_by_id', service_id=sample_service.id) + assert json_resp['data']['id'] == str(sample_service.id) + assert json_resp['data']['allowed_broadcast_provider'] == 'ee' + + @pytest.mark.parametrize('detailed', [True, False]) def test_get_service_by_id_returns_organisation_type(admin_request, sample_service, detailed): json_resp = admin_request.get('service.get_service_by_id', service_id=sample_service.id, detailed=detailed)