From e9aba34c5e03e4ddb46fd4091a4d8cb720a585c1 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 24 Jan 2018 11:53:22 +0000 Subject: [PATCH] Turn letters on by default for new services MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Letters is a mature enough feature now – and one that we’ve been talking about offering for long enough – that we shouldn’t make people dig around in the settings. I think we’d want to wait a bit longer/indefinitely before deciding to turn it on for existing services across the platform. --- app/dao/services_dao.py | 4 +++- tests/app/dao/test_services_dao.py | 21 ++++++++++++++------- tests/app/service/test_rest.py | 4 ++-- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/dao/services_dao.py b/app/dao/services_dao.py index 6985a26e8..95f83dec2 100644 --- a/app/dao/services_dao.py +++ b/app/dao/services_dao.py @@ -37,7 +37,8 @@ from app.models import ( KEY_TYPE_TEST, NOTIFICATION_STATUS_TYPES, SMS_TYPE, - TEMPLATE_TYPES + TEMPLATE_TYPES, + LETTER_TYPE, ) from app.statsd_decorators import statsd from app.utils import get_london_month_from_utc_column, get_london_midnight_in_utc @@ -45,6 +46,7 @@ from app.utils import get_london_month_from_utc_column, get_london_midnight_in_u DEFAULT_SERVICE_PERMISSIONS = [ SMS_TYPE, EMAIL_TYPE, + LETTER_TYPE, INTERNATIONAL_SMS_TYPE, ] diff --git a/tests/app/dao/test_services_dao.py b/tests/app/dao/test_services_dao.py index 32f16f27a..64e1edd5d 100644 --- a/tests/app/dao/test_services_dao.py +++ b/tests/app/dao/test_services_dao.py @@ -270,13 +270,13 @@ def test_create_service_returns_service_with_default_permissions(service_factory service = dao_fetch_service_by_id(service.id) _assert_service_permissions(service.permissions, ( - SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE, + SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, )) @pytest.mark.parametrize("permission_to_remove, permission_remaining", [ - (SMS_TYPE, EMAIL_TYPE), - (EMAIL_TYPE, SMS_TYPE), + (SMS_TYPE, (EMAIL_TYPE, LETTER_TYPE)), + (EMAIL_TYPE, (SMS_TYPE, LETTER_TYPE)), ]) def test_remove_permission_from_service_by_id_returns_service_with_correct_permissions( sample_service, permission_to_remove, permission_remaining @@ -285,13 +285,14 @@ def test_remove_permission_from_service_by_id_returns_service_with_correct_permi service = dao_fetch_service_by_id(sample_service.id) _assert_service_permissions(service.permissions, ( - permission_remaining, INTERNATIONAL_SMS_TYPE, + permission_remaining + (INTERNATIONAL_SMS_TYPE,) )) def test_removing_all_permission_returns_service_with_no_permissions(sample_service): dao_remove_service_permission(service_id=sample_service.id, permission=SMS_TYPE) dao_remove_service_permission(service_id=sample_service.id, permission=EMAIL_TYPE) + dao_remove_service_permission(service_id=sample_service.id, permission=LETTER_TYPE) dao_remove_service_permission(service_id=sample_service.id, permission=INTERNATIONAL_SMS_TYPE) service = dao_fetch_service_by_id(sample_service.id) @@ -309,6 +310,7 @@ def test_remove_service_does_not_remove_service_permission_types(sample_service) def test_create_service_by_id_adding_and_removing_letter_returns_service_without_letter(service_factory): service = service_factory.get('testing', email_from='testing') + dao_remove_service_permission(service_id=service.id, permission=LETTER_TYPE) dao_add_service_permission(service_id=service.id, permission=LETTER_TYPE) service = dao_fetch_service_by_id(service.id) @@ -387,7 +389,11 @@ def test_update_service_permission_creates_a_history_record_with_current_data(sa message_limit=1000, restricted=False, created_by=sample_user) - dao_create_service(service, sample_user) + dao_create_service(service, sample_user, service_permissions=[ + SMS_TYPE, + EMAIL_TYPE, + INTERNATIONAL_SMS_TYPE, + ]) service.permissions.append(ServicePermission(service_id=service.id, permission='letter')) dao_update_service(service) @@ -451,8 +457,9 @@ def test_delete_service_and_associated_objects(notify_db, sample_invited_user, sample_permission, sample_provider_statistics): - # Default service permissions of Email and SMS - assert ServicePermission.query.count() == 3 + assert ServicePermission.query.count() == len(( + SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE + )) delete_service_and_all_associated_db_objects(sample_service) assert ProviderStatistics.query.count() == 0 diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index d498a07b6..35fbc8650 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -152,7 +152,7 @@ def test_get_service_list_has_default_permissions(admin_request, service_factory set( json['permissions'] ) == set([ - EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, + EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE ]) for json in json_resp['data'] ) @@ -164,7 +164,7 @@ def test_get_service_by_id_has_default_service_permissions(admin_request, sample assert set( json_resp['data']['permissions'] ) == set([ - EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, + EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE ])