From b1706fd2131656cfbe1fb6e36d1ef16727e1d996 Mon Sep 17 00:00:00 2001 From: Ken Tsang Date: Mon, 24 Apr 2017 13:52:10 +0100 Subject: [PATCH 1/2] Updated service settings for international sms --- app/main/views/service_settings.py | 11 +++++++++++ app/notify_client/service_api_client.py | 1 + app/templates/views/service-settings.html | 5 +++++ tests/__init__.py | 2 ++ tests/app/main/views/test_service_settings.py | 2 ++ 5 files changed, 21 insertions(+) diff --git a/app/main/views/service_settings.py b/app/main/views/service_settings.py index d19abab1c..314f1f4a5 100644 --- a/app/main/views/service_settings.py +++ b/app/main/views/service_settings.py @@ -192,6 +192,17 @@ def service_switch_can_send_letters(service_id): return redirect(url_for('.service_settings', service_id=service_id)) +@main.route("/services//service-settings/can-send-international-sms") +@login_required +@user_has_permissions(admin_override=True) +def service_switch_can_send_international_sms(service_id): + service_api_client.update_service_with_properties( + service_id, + {"can_send_international_sms": not current_service['can_send_international_sms']} + ) + return redirect(url_for('.service_settings', service_id=service_id)) + + @main.route("/services//service-settings/archive", methods=['GET', 'POST']) @login_required @user_has_permissions('manage_settings', admin_override=True) diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index d172176cd..2d589bc5f 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -87,6 +87,7 @@ class ServiceAPIClient(NotifyAdminAPIClient): 'reply_to_email_address', 'research_mode', 'can_send_letters', + 'can_send_international_sms', 'sms_sender', 'created_by', 'branding', diff --git a/app/templates/views/service-settings.html b/app/templates/views/service-settings.html index 78f0db7a1..07c0d8dbf 100644 --- a/app/templates/views/service-settings.html +++ b/app/templates/views/service-settings.html @@ -126,6 +126,11 @@ {{ 'Stop sending letters' if current_service.can_send_letters else 'Allow to send letters' }} +
  • + + {{ 'Stop sending international sms' if current_service.can_send_international_sms else 'Allow to send international sms' }} + +
  • {% if current_service.active %}
  • diff --git a/tests/__init__.py b/tests/__init__.py index d7f014cb9..10a48f9f6 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -50,6 +50,7 @@ def service_json( sms_sender=None, research_mode=False, can_send_letters=False, + can_send_international_sms=False, organisation=None, branding='govuk', created_at=None, @@ -69,6 +70,7 @@ def service_json( 'sms_sender': sms_sender, 'research_mode': research_mode, 'can_send_letters': can_send_letters, + 'can_send_international_sms': can_send_international_sms, 'organisation': organisation, 'branding': branding, 'created_at': created_at or str(datetime.utcnow()), diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index 7b7095074..9e1e62e8c 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -417,6 +417,7 @@ def test_route_permissions( 'main.service_switch_live', 'main.service_switch_research_mode', 'main.service_switch_can_send_letters', + 'main.service_switch_can_send_international_sms', 'main.archive_service', ]) def test_route_invalid_permissions( @@ -467,6 +468,7 @@ def test_route_for_platform_admin( 'main.service_switch_live', 'main.service_switch_research_mode', 'main.service_switch_can_send_letters', + 'main.service_switch_can_send_international_sms', ]) def test_route_for_platform_admin_update_service( mocker, From d958a58b1b96ff3f00ece4942486322fc2298639 Mon Sep 17 00:00:00 2001 From: Ken Tsang Date: Mon, 24 Apr 2017 14:02:07 +0100 Subject: [PATCH 2/2] Tests for enable / disable international sms --- tests/app/main/views/test_service_settings.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index 9e1e62e8c..a4a72a04c 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -847,6 +847,39 @@ def test_switch_service_disable_letters( assert mocked_fn.call_args == call(service_one['id'], {"can_send_letters": False}) +def test_switch_service_enable_international_sms( + logged_in_platform_admin_client, + service_one, + mocker, +): + mocked_fn = mocker.patch('app.service_api_client.update_service_with_properties', return_value=service_one) + + response = logged_in_platform_admin_client.get( + url_for('main.service_switch_can_send_international_sms', service_id=service_one['id']) + ) + + assert response.status_code == 302 + assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True) + assert mocked_fn.call_args == call(service_one['id'], {'can_send_international_sms': True}) + + +def test_switch_service_disable_international_sms( + logged_in_platform_admin_client, + service_one, + mocker, +): + service_one['can_send_international_sms'] = True + mocked_fn = mocker.patch('app.service_api_client.update_service_with_properties', return_value=service_one) + + response = logged_in_platform_admin_client.get( + url_for('main.service_switch_can_send_international_sms', service_id=service_one['id']) + ) + + assert response.status_code == 302 + assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True) + assert mocked_fn.call_args == call(service_one['id'], {"can_send_international_sms": False}) + + def test_archive_service_after_confirm( logged_in_platform_admin_client, service_one,