Make international SMS on for new services

International SMS is a mature, documented feature now. There’s no reason
it shouldn’t be available to everyone. If it’s turned off by default
then we’re relying on people finding it in the settings page to know
that it exists (which we found in research the other week that users,
who would have benefitted from having international SMS, were failing to
do).

This also fixes the problem whereby users signing up for Notify with an
international phone number (eg those working abroad for the Foreign and
Commonwealth Office) couldn’t get through the tour because they weren’t
able to send themselves the example text message (see
https://www.pivotaltracker.com/story/show/150705515).
This commit is contained in:
Chris Hill-Scott
2017-10-19 11:06:28 +01:00
parent fb85f22c2a
commit 46d45d8595
6 changed files with 91 additions and 31 deletions

View File

@@ -57,6 +57,7 @@ from app.models import (
KEY_TYPE_TEST,
EMAIL_TYPE,
SMS_TYPE,
INTERNATIONAL_SMS_TYPE,
LETTER_TYPE,
SERVICE_PERMISSION_TYPES
)
@@ -260,25 +261,38 @@ def test_create_service_returns_service_with_default_permissions(service_factory
service = service_factory.get('testing', email_from='testing')
service = dao_fetch_service_by_id(service.id)
assert len(service.permissions) == 2
assert set([SMS_TYPE, EMAIL_TYPE]) == set(p.permission for p in service.permissions)
assert len(service.permissions) == 3
assert set([
SMS_TYPE,
EMAIL_TYPE,
INTERNATIONAL_SMS_TYPE,
]) == set(
p.permission for p in service.permissions
)
@pytest.mark.parametrize("permission_to_remove, permission_remaining",
[(SMS_TYPE, EMAIL_TYPE),
(EMAIL_TYPE, SMS_TYPE)])
@pytest.mark.parametrize("permission_to_remove, permission_remaining", [
(SMS_TYPE, EMAIL_TYPE),
(EMAIL_TYPE, SMS_TYPE),
])
def test_remove_permission_from_service_by_id_returns_service_with_correct_permissions(
sample_service, permission_to_remove, permission_remaining):
sample_service, permission_to_remove, permission_remaining
):
dao_remove_service_permission(service_id=sample_service.id, permission=permission_to_remove)
service = dao_fetch_service_by_id(sample_service.id)
assert len(service.permissions) == 1
assert service.permissions[0].permission == permission_remaining
assert len(service.permissions) == 2
assert set(
p.permission for p in service.permissions
) == set((
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=INTERNATIONAL_SMS_TYPE)
service = dao_fetch_service_by_id(sample_service.id)
assert len(service.permissions) == 0
@@ -298,14 +312,22 @@ def test_create_service_by_id_adding_and_removing_letter_returns_service_without
dao_add_service_permission(service_id=service.id, permission=LETTER_TYPE)
service = dao_fetch_service_by_id(service.id)
assert len(service.permissions) == 3
assert set([SMS_TYPE, EMAIL_TYPE, LETTER_TYPE]) == set([p.permission for p in service.permissions])
assert len(service.permissions) == 4
assert set([
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE,
]) == set([
p.permission for p in service.permissions
])
dao_remove_service_permission(service_id=service.id, permission=LETTER_TYPE)
service = dao_fetch_service_by_id(service.id)
assert len(service.permissions) == 2
assert set([SMS_TYPE, EMAIL_TYPE]) == set([p.permission for p in service.permissions])
assert len(service.permissions) == 3
assert set([
SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE,
]) == set([
p.permission for p in service.permissions
])
def test_create_service_creates_a_history_record_with_current_data(sample_user):
@@ -431,7 +453,7 @@ def test_delete_service_and_associated_objects(notify_db,
sample_permission,
sample_provider_statistics):
# Default service permissions of Email and SMS
assert ServicePermission.query.count() == 2
assert ServicePermission.query.count() == 3
delete_service_and_all_associated_db_objects(sample_service)
assert NotificationStatistics.query.count() == 0