From 82df01653f5f0bfcc7cae9e978b66c62afcf5447 Mon Sep 17 00:00:00 2001 From: Ryan Ahearn Date: Wed, 4 Jan 2023 16:35:25 -0500 Subject: [PATCH] Update tests to focus on US numbers --- tests/app/celery/test_research_mode_tasks.py | 10 ++-- tests/app/celery/test_tasks.py | 22 +++---- .../notification_dao/test_notification_dao.py | 34 +++++------ tests/app/dao/test_services_dao.py | 10 ++-- tests/app/dao/test_users_dao.py | 2 +- tests/app/db.py | 2 +- tests/app/delivery/test_send_to_providers.py | 16 ++--- .../test_process_notification.py | 43 ++++++------- .../test_receive_notification.py | 8 +-- tests/app/notifications/test_validators.py | 22 +++---- .../test_POST_notification.py | 2 +- .../test_send_notification.py | 60 ++++++------------- .../test_send_one_off_notification.py | 36 +++++------ tests/app/service/test_rest.py | 6 +- tests/app/service/test_service_guest_list.py | 12 ++-- tests/app/test_commands.py | 2 +- tests/app/test_model.py | 6 +- tests/app/user/test_rest.py | 20 +++---- tests/app/user/test_rest_verify.py | 2 +- .../test_notification_schemas.py | 26 ++++---- .../notifications/test_post_notifications.py | 32 +++++----- 21 files changed, 172 insertions(+), 201 deletions(-) diff --git a/tests/app/celery/test_research_mode_tasks.py b/tests/app/celery/test_research_mode_tasks.py index c9e42f62e..996b779e2 100644 --- a/tests/app/celery/test_research_mode_tasks.py +++ b/tests/app/celery/test_research_mode_tasks.py @@ -31,11 +31,11 @@ def test_make_sns_callback(notify_api, rmock): endpoint, json={"status": "success"}, status_code=200) - send_sms_response("sns", "1234", "5558675309") + send_sms_response("sns", "1234", "2028675309") assert rmock.called assert rmock.request_history[0].url == endpoint - assert json.loads(rmock.request_history[0].text)['MSISDN'] == '5558675309' + assert json.loads(rmock.request_history[0].text)['MSISDN'] == '2028675309' @pytest.mark.skip(reason="Re-enable when SMS receipts exist") @@ -70,7 +70,7 @@ def test_make_ses_callback(notify_api, mocker): @pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist") def test_delievered_sns_callback(): - phone_number = "5558675309" + phone_number = "2028675309" data = json.loads(sns_callback("1234", phone_number)) assert data['MSISDN'] == phone_number assert data['status'] == "3" @@ -80,7 +80,7 @@ def test_delievered_sns_callback(): @pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist") def test_perm_failure_sns_callback(): - phone_number = "5558675302" + phone_number = "2028675302" data = json.loads(sns_callback("1234", phone_number)) assert data['MSISDN'] == phone_number assert data['status'] == "5" @@ -90,7 +90,7 @@ def test_perm_failure_sns_callback(): @pytest.mark.skip(reason="Re-enable when SNS delivery receipts exist") def test_temp_failure_sns_callback(): - phone_number = "5558675303" + phone_number = "2028675303" data = json.loads(sns_callback("1234", phone_number)) assert data['MSISDN'] == phone_number assert data['status'] == "4" diff --git a/tests/app/celery/test_tasks.py b/tests/app/celery/test_tasks.py index 5c55a439d..3780f3ad5 100644 --- a/tests/app/celery/test_tasks.py +++ b/tests/app/celery/test_tasks.py @@ -502,10 +502,10 @@ def test_should_put_save_sms_task_in_research_mode_queue_if_research_mode_servic def test_should_save_sms_if_restricted_service_and_valid_number(notify_db_session, mocker): - user = create_user(mobile_number="07700 900890") + user = create_user(mobile_number="202-867-5309") service = create_service(user=user, restricted=True) template = create_template(service=service) - notification = _notification_json(template, "+447700900890") # The user’s own number, but in a different format + notification = _notification_json(template, "+12028675309") # The user’s own number, but in a different format mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') @@ -518,7 +518,7 @@ def test_should_save_sms_if_restricted_service_and_valid_number(notify_db_sessio ) persisted_notification = Notification.query.one() - assert persisted_notification.to == '+447700900890' + assert persisted_notification.to == '+12028675309' assert persisted_notification.template_id == template.id assert persisted_notification.template_version == template.version assert persisted_notification.status == 'created' @@ -553,11 +553,11 @@ def test_save_email_should_save_default_email_reply_to_text_on_notification(noti assert persisted_notification.reply_to_text == 'reply_to@digital.gov.uk' -def test_save_sms_should_save_default_smm_sender_notification_reply_to_text_on(notify_db_session, mocker): +def test_save_sms_should_save_default_sms_sender_notification_reply_to_text_on(notify_db_session, mocker): service = create_service_with_defined_sms_sender(sms_sender_value='12345') template = create_template(service=service) - notification = _notification_json(template, to="07700 900205") + notification = _notification_json(template, to="2028675309") mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') notification_id = uuid.uuid4() @@ -1204,10 +1204,10 @@ def test_save_letter_uses_template_reply_to_text(mocker, notify_db_session): def test_save_sms_uses_sms_sender_reply_to_text(mocker, notify_db_session): - service = create_service_with_defined_sms_sender(sms_sender_value='07123123123') + service = create_service_with_defined_sms_sender(sms_sender_value='2028675309') template = create_template(service=service) - notification = _notification_json(template, to="07700 900205") + notification = _notification_json(template, to="2028675301") mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') notification_id = uuid.uuid4() @@ -1218,15 +1218,15 @@ def test_save_sms_uses_sms_sender_reply_to_text(mocker, notify_db_session): ) persisted_notification = Notification.query.one() - assert persisted_notification.reply_to_text == '447123123123' + assert persisted_notification.reply_to_text == '+12028675309' def test_save_sms_uses_non_default_sms_sender_reply_to_text_if_provided(mocker, notify_db_session): - service = create_service_with_defined_sms_sender(sms_sender_value='07123123123') + service = create_service_with_defined_sms_sender(sms_sender_value='2028675309') template = create_template(service=service) new_sender = service_sms_sender_dao.dao_add_sms_sender_for_service(service.id, 'new-sender', False) - notification = _notification_json(template, to="07700 900205") + notification = _notification_json(template, to="202-867-5301") mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') notification_id = uuid.uuid4() @@ -1918,7 +1918,7 @@ def test_save_api_email_dont_retry_if_notification_already_exists(sample_service ), ( save_sms, 'app.celery.provider_tasks.deliver_sms.apply_async', - '07700 900890', + '202-867-5309', {'template_type': 'sms'} ), )) diff --git a/tests/app/dao/notification_dao/test_notification_dao.py b/tests/app/dao/notification_dao/test_notification_dao.py index 49e9b92c0..8ae304ebf 100644 --- a/tests/app/dao/notification_dao/test_notification_dao.py +++ b/tests/app/dao/notification_dao/test_notification_dao.py @@ -1080,16 +1080,14 @@ def test_dao_get_notifications_by_reference_escapes_special_character( @pytest.mark.parametrize('search_term', [ - '001', - '100', - '09001', - '077009001', - '07700 9001', - '(0)7700 9001', - '4477009001', - '+4477009001', - pytest.param('+44077009001', marks=pytest.mark.skip(reason='No easy way to normalise this')), - pytest.param('+44(0)77009001', marks=pytest.mark.skip(reason='No easy way to normalise this')), + '309', + '530', + '8675309', + '202867', + '202 867', + '202-867-5309', + '2028675309', + '+12028675309', ]) def test_dao_get_notifications_by_recipient_matches_partial_phone_numbers( sample_template, @@ -1098,13 +1096,13 @@ def test_dao_get_notifications_by_recipient_matches_partial_phone_numbers( notification_1 = create_notification( template=sample_template, - to_field='+447700900100', - normalised_to='447700900100', + to_field='202-867-5309', + normalised_to='+12028675309', ) notification_2 = create_notification( template=sample_template, - to_field='+447700900200', - normalised_to='447700900200', + to_field='202-678-5000', + normalised_to='+12026785000', ) results = dao_get_notifications_by_recipient_or_reference( notification_1.service_id, search_term, notification_type='sms' @@ -1156,7 +1154,7 @@ def test_dao_get_notifications_by_recipient_ignores_spaces(sample_template): @pytest.mark.parametrize('phone_search', ( - '077', '7-7', '+44(0)7711 111111' + '202', '7-5', '+1 (202) 867-5309' )) @pytest.mark.parametrize('email_search', ( 'example', 'eXaMpLe', @@ -1169,9 +1167,9 @@ def test_dao_get_notifications_by_recipient_searches_across_notification_types( service = create_service() sms_template = create_template(service=service) email_template = create_template(service=service, template_type='email') - sms = create_notification(template=sms_template, to_field='07711111111', normalised_to='447711111111') + sms = create_notification(template=sms_template, to_field='202-867-5309', normalised_to='+12028675309') email = create_notification( - template=email_template, to_field='077@example.com', normalised_to='077@example.com' + template=email_template, to_field='202@example.com', normalised_to='202@example.com' ) results = dao_get_notifications_by_recipient_or_reference( @@ -1186,7 +1184,7 @@ def test_dao_get_notifications_by_recipient_searches_across_notification_types( assert len(results.items) == 1 assert results.items[0].id == email.id - results = dao_get_notifications_by_recipient_or_reference(service.id, '77') + results = dao_get_notifications_by_recipient_or_reference(service.id, '202') assert len(results.items) == 2 assert results.items[0].id == email.id assert results.items[1].id == sms.id diff --git a/tests/app/dao/test_services_dao.py b/tests/app/dao/test_services_dao.py index 899f003c4..404f751e2 100644 --- a/tests/app/dao/test_services_dao.py +++ b/tests/app/dao/test_services_dao.py @@ -258,7 +258,7 @@ def test_should_add_user_to_service(notify_db_session): name='Test User', email_address='new_user@digital.cabinet-office.gov.uk', password='password', - mobile_number='+447700900986' + mobile_number='+12028675309' ) save_model_user(new_user, validated_email_access=True) dao_add_user_to_service(service, new_user) @@ -327,7 +327,7 @@ def test_should_remove_user_from_service(notify_db_session): name='Test User', email_address='new_user@digital.cabinet-office.gov.uk', password='password', - mobile_number='+447700900986' + mobile_number='+12028675309' ) save_model_user(new_user, validated_email_access=True) dao_add_user_to_service(service, new_user) @@ -428,7 +428,7 @@ def test_get_all_user_services_only_returns_services_user_has_access_to(notify_d name='Test User', email_address='new_user@digital.cabinet-office.gov.uk', password='password', - mobile_number='+447700900986' + mobile_number='+12028675309' ) save_model_user(new_user, validated_email_access=True) dao_add_user_to_service(service_3, new_user) @@ -486,7 +486,7 @@ def test_dao_fetch_live_services_data(sample_user): assert results == [ {'service_id': mock.ANY, 'service_name': 'Sample service', 'organisation_name': 'test_org_1', 'organisation_type': 'federal', 'consent_to_research': None, 'contact_name': 'Test User', - 'contact_email': 'notify@digital.cabinet-office.gov.uk', 'contact_mobile': '+447700900986', + 'contact_email': 'notify@digital.cabinet-office.gov.uk', 'contact_mobile': '+12028675309', 'live_date': datetime(2014, 4, 20, 10, 0), 'sms_volume_intent': None, 'email_volume_intent': None, 'letter_volume_intent': None, 'sms_totals': 2, 'email_totals': 1, 'letter_totals': 1, 'free_sms_fragment_limit': 100}, @@ -498,7 +498,7 @@ def test_dao_fetch_live_services_data(sample_user): 'free_sms_fragment_limit': 200}, {'service_id': mock.ANY, 'service_name': 'second', 'organisation_name': None, 'consent_to_research': None, 'contact_name': 'Test User', 'contact_email': 'notify@digital.cabinet-office.gov.uk', - 'contact_mobile': '+447700900986', 'live_date': datetime(2017, 4, 20, 10, 0), 'sms_volume_intent': None, + 'contact_mobile': '+12028675309', 'live_date': datetime(2017, 4, 20, 10, 0), 'sms_volume_intent': None, 'organisation_type': None, 'email_volume_intent': None, 'letter_volume_intent': None, 'sms_totals': 0, 'email_totals': 0, 'letter_totals': 1, 'free_sms_fragment_limit': 300} diff --git a/tests/app/dao/test_users_dao.py b/tests/app/dao/test_users_dao.py index c128d594d..46720fd72 100644 --- a/tests/app/dao/test_users_dao.py +++ b/tests/app/dao/test_users_dao.py @@ -38,7 +38,7 @@ from tests.app.db import ( @freeze_time('2020-01-28T12:00:00') @pytest.mark.parametrize('phone_number', [ - '+447700900986', + '+12028675309', '+1-800-555-5555', ]) def test_create_user(notify_db_session, phone_number): diff --git a/tests/app/db.py b/tests/app/db.py index 729ed8b29..edcfd6cd7 100644 --- a/tests/app/db.py +++ b/tests/app/db.py @@ -72,7 +72,7 @@ from app.models import ( def create_user( *, - mobile_number="+447700900986", + mobile_number="+12028675309", email=None, state='active', id_=None, diff --git a/tests/app/delivery/test_send_to_providers.py b/tests/app/delivery/test_send_to_providers.py index 107c841d5..48ff35368 100644 --- a/tests/app/delivery/test_send_to_providers.py +++ b/tests/app/delivery/test_send_to_providers.py @@ -117,10 +117,10 @@ def test_should_send_personalised_template_to_correct_sms_provider_and_persist( mocker ): db_notification = create_notification(template=sample_sms_template_with_html, - to_field="5558675309", personalisation={"name": "Jo"}, + to_field="2028675309", personalisation={"name": "Jo"}, status='created', reply_to_text=sample_sms_template_with_html.service.get_default_sms_sender(), - normalised_to="5558675309" + normalised_to="2028675309" ) mocker.patch('app.aws_sns_client.send_sms') @@ -130,7 +130,7 @@ def test_should_send_personalised_template_to_correct_sms_provider_and_persist( ) aws_sns_client.send_sms.assert_called_once_with( - to="5558675309", + to="2028675309", content="Sample service: Hello Jo\nHere is some HTML & entities", reference=str(db_notification.id), sender=current_app.config['FROM_NUMBER'], @@ -210,9 +210,9 @@ def test_should_not_send_sms_message_when_service_is_inactive_notification_is_in def test_send_sms_should_use_template_version_from_notification_not_latest( sample_template, mocker): - db_notification = create_notification(template=sample_template, to_field='5558675309', status='created', + db_notification = create_notification(template=sample_template, to_field='2028675309', status='created', reply_to_text=sample_template.service.get_default_sms_sender(), - normalised_to='5558675309') + normalised_to='2028675309') mocker.patch('app.aws_sns_client.send_sms') @@ -234,7 +234,7 @@ def test_send_sms_should_use_template_version_from_notification_not_latest( ) aws_sns_client.send_sms.assert_called_once_with( - to="5558675309", + to="2028675309", content="Sample service: This is a template:\nwith a newline", reference=str(db_notification.id), sender=current_app.config['FROM_NUMBER'], @@ -737,8 +737,8 @@ def test_send_sms_to_provider_should_use_normalised_to( ): send_mock = mocker.patch('app.aws_sns_client.send_sms') notification = create_notification(template=sample_template, - to_field='+15558675309', - normalised_to='5558675309') + to_field='+12028675309', + normalised_to='2028675309') send_to_providers.send_sms_to_provider(notification) send_mock.assert_called_once_with(to=notification.normalised_to, content=ANY, diff --git a/tests/app/notifications/test_process_notification.py b/tests/app/notifications/test_process_notification.py index df7e9a5e1..98e698888 100644 --- a/tests/app/notifications/test_process_notification.py +++ b/tests/app/notifications/test_process_notification.py @@ -122,7 +122,7 @@ def test_persist_notification_with_optionals(sample_job, sample_api_key): persist_notification( template_id=sample_job.template.id, template_version=sample_job.template.version, - recipient='+447111111111', + recipient='+12028675309', service=sample_job.service, personalisation=None, notification_type='sms', @@ -146,7 +146,7 @@ def test_persist_notification_with_optionals(sample_job, sample_api_key): assert persisted_notification.client_reference == "ref from client" assert persisted_notification.reference is None assert persisted_notification.international is False - assert persisted_notification.phone_prefix == '44' + assert persisted_notification.phone_prefix == '1' assert persisted_notification.rate_multiplier == 1 assert persisted_notification.created_by_id == sample_job.created_by_id assert not persisted_notification.reply_to_text @@ -297,15 +297,15 @@ def test_send_notification_to_queue_throws_exception_deletes_notification(sample @pytest.mark.parametrize("to_address, notification_type, expected", [ - ("+447700900000", "sms", True), - ("+447700900111", "sms", True), - ("+447700900222", "sms", True), - ("07700900000", "sms", True), - ("7700900111", "sms", True), + ("+12028675000", "sms", True), + ("+12028675111", "sms", True), + ("+12028675222", "sms", True), + ("2028675000", "sms", True), + ("2028675111", "sms", True), ("simulate-delivered@notifications.service.gov.uk", "email", True), ("simulate-delivered-2@notifications.service.gov.uk", "email", True), ("simulate-delivered-3@notifications.service.gov.uk", "email", True), - ("07515896969", "sms", False), + ("2028675309", "sms", False), ("valid_email@test.com", "email", False) ]) def test_simulated_recipient(notify_api, to_address, notification_type, expected): @@ -317,7 +317,7 @@ def test_simulated_recipient(notify_api, to_address, notification_type, expected 'simulate-delivered-2@notifications.service.gov.uk', 'simulate-delivered-2@notifications.service.gov.uk' ) - SIMULATED_SMS_NUMBERS = ('+447700900000', '+447700900111', '+447700900222') + SIMULATED_SMS_NUMBERS = ('+12028675000', '+12028675111', '+12028675222') """ formatted_address = None @@ -332,12 +332,10 @@ def test_simulated_recipient(notify_api, to_address, notification_type, expected @pytest.mark.parametrize('recipient, expected_international, expected_prefix, expected_units', [ - ('7900900123', False, '44', 1), # UK - ('+447900900123', False, '44', 1), # UK - ('07700910222', True, '44', 1), # UK (Jersey) - ('07700900222', False, '44', 1), # TV number - ('73122345678', True, '7', 1), # Russia - ('360623400400', True, '36', 3)] # Hungary + ('+447900900123', True, '44', 1), # UK + ('+73122345678', True, '7', 1), # Russia + ('+360623400400', True, '36', 1), # Hungary + ('2028675309', False, '1', 1)] # USA ) def test_persist_notification_with_international_info_stores_correct_info( sample_job, @@ -394,15 +392,12 @@ def test_persist_notification_with_international_info_does_not_store_for_email( @pytest.mark.parametrize('recipient, expected_recipient_normalised', [ - ('7900900123', '447900900123'), - ('+447900 900 123', '447900900123'), - (' 07700900222', '447700900222'), - ('07700900222', '447700900222'), - (' 73122345678', '73122345678'), - ('360623400400', '360623400400'), - ('-077-00900222-', '447700900222'), - ('(360623(400400)', '360623400400') - + ('+4407900900123', '+447900900123'), + ('202-867-5309', '+12028675309'), + ('1 202-867-5309', '+12028675309'), + ('+1 (202) 867-5309', '+12028675309'), + ('(202) 867-5309', '+12028675309'), + ('2028675309', '+12028675309') ]) def test_persist_sms_notification_stores_normalised_number( sample_job, diff --git a/tests/app/notifications/test_receive_notification.py b/tests/app/notifications/test_receive_notification.py index 90ddbd6a5..e90a29896 100644 --- a/tests/app/notifications/test_receive_notification.py +++ b/tests/app/notifications/test_receive_notification.py @@ -40,7 +40,7 @@ def test_receive_notification_returns_received_to_sns(client, mocker, sample_ser mocked = mocker.patch("app.notifications.receive_notifications.tasks.send_inbound_sms_to_service.apply_async") prom_counter_labels_mock = mocker.patch('app.notifications.receive_notifications.INBOUND_SMS_COUNTER.labels') data = { - "originationNumber": "+15558675309", + "originationNumber": "+12028675309", "destinationNumber": sample_service_full_permissions.get_inbound_number(), "messageKeyword": "JOIN", "messageBody": "EXAMPLE", @@ -241,9 +241,9 @@ def test_receive_notification_error_if_not_single_matching_service(client, notif @pytest.mark.parametrize( 'number, expected', [ - ('15558675309', '5558675309'), - ('+15558675309', '5558675309'), - ('5558675309', '5558675309'), + ('12028675309', '2028675309'), + ('+12028675309', '2028675309'), + ('2028675309', '2028675309'), ('15111111111', '5111111111') ] ) diff --git a/tests/app/notifications/test_validators.py b/tests/app/notifications/test_validators.py index babada8fc..f354d184e 100644 --- a/tests/app/notifications/test_validators.py +++ b/tests/app/notifications/test_validators.py @@ -167,10 +167,10 @@ def test_service_can_send_to_recipient_passes(key_type, notify_db_session): @pytest.mark.parametrize('user_number, recipient_number', [ - ['0048601234567', '+486 012 34567'], - ['07513332413', '(07513) 332413'], + ['+12028675309', '202-867-5309'], + ['+447513332413', '+44 (07513) 332413'], ]) -def test_service_can_send_to_recipient_passes_with_non_normalised_number(sample_service, user_number, recipient_number): +def test_service_can_send_to_recipient_passes_with_non_normalized_number(sample_service, user_number, recipient_number): sample_service.users[0].mobile_number = user_number serialised_service = SerialisedService.from_id(sample_service.id) @@ -181,7 +181,7 @@ def test_service_can_send_to_recipient_passes_with_non_normalised_number(sample_ @pytest.mark.parametrize('user_email, recipient_email', [ ['test@example.com', 'TeSt@EXAMPLE.com'], ]) -def test_service_can_send_to_recipient_passes_with_non_normalised_email(sample_service, user_email, recipient_email): +def test_service_can_send_to_recipient_passes_with_non_normalized_email(sample_service, user_email, recipient_email): sample_service.users[0].email_address = user_email serialised_service = SerialisedService.from_id(sample_service.id) @@ -206,15 +206,15 @@ def test_service_can_send_to_recipient_passes_for_guest_list_recipient_passes(sa assert service_can_send_to_recipient("some_other_email@test.com", 'team', sample_service) is None - create_service_guest_list(sample_service, mobile_number='07513332413') - assert service_can_send_to_recipient('07513332413', + create_service_guest_list(sample_service, mobile_number='2028675309') + assert service_can_send_to_recipient('2028675309', 'team', sample_service) is None @pytest.mark.parametrize('recipient', [ {"email_address": "some_other_email@test.com"}, - {"mobile_number": "07513332413"}, + {"mobile_number": "2028675300"}, ]) def test_service_can_send_to_recipient_fails_when_ignoring_guest_list( notify_db_session, @@ -234,7 +234,7 @@ def test_service_can_send_to_recipient_fails_when_ignoring_guest_list( assert exec_info.value.fields == [] -@pytest.mark.parametrize('recipient', ['07513332413', 'some_other_email@test.com']) +@pytest.mark.parametrize('recipient', ['2028675300', 'some_other_email@test.com']) @pytest.mark.parametrize('key_type, error_message', [('team', 'Can’t send to this recipient using a team-only API key'), ('normal', @@ -482,7 +482,7 @@ def test_validate_and_format_recipient_fails_when_international_number_and_servi service = create_service(service_permissions=[SMS_TYPE]) service_model = SerialisedService.from_id(service.id) with pytest.raises(BadRequestError) as e: - validate_and_format_recipient('20-12-1234-1234', key_type, service_model, SMS_TYPE) + validate_and_format_recipient('+20-12-1234-1234', key_type, service_model, SMS_TYPE) assert e.value.status_code == 400 assert e.value.message == 'Cannot send to international mobile numbers' assert e.value.fields == [] @@ -492,8 +492,8 @@ def test_validate_and_format_recipient_fails_when_international_number_and_servi def test_validate_and_format_recipient_succeeds_with_international_numbers_if_service_does_allow_int_sms( key_type, sample_service_full_permissions): service_model = SerialisedService.from_id(sample_service_full_permissions.id) - result = validate_and_format_recipient('20-12-1234-1234', key_type, service_model, SMS_TYPE) - assert result == '201212341234' + result = validate_and_format_recipient('+4407513332413', key_type, service_model, SMS_TYPE) + assert result == '+447513332413' def test_validate_and_format_recipient_fails_when_no_recipient(): diff --git a/tests/app/public_contracts/test_POST_notification.py b/tests/app/public_contracts/test_POST_notification.py index 2396359a5..3a4d2dc10 100644 --- a/tests/app/public_contracts/test_POST_notification.py +++ b/tests/app/public_contracts/test_POST_notification.py @@ -24,7 +24,7 @@ def test_post_sms_contract(client, mocker, sample_template): mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') response_json = return_json_from_response(_post_notification( - client, sample_template, url='/notifications/sms', to='07700 900 855' + client, sample_template, url='/notifications/sms', to='202-867-5309' )) validate_v0(response_json, 'POST_notification_return_sms.json') diff --git a/tests/app/service/send_notification/test_send_notification.py b/tests/app/service/send_notification/test_send_notification.py index 2dc6f7ae5..ffeb10fa8 100644 --- a/tests/app/service/send_notification/test_send_notification.py +++ b/tests/app/service/send_notification/test_send_notification.py @@ -83,7 +83,8 @@ def test_should_reject_bad_phone_numbers(notify_api, sample_template, mocker): mocked.assert_not_called() assert json_resp['result'] == 'error' assert len(json_resp['message'].keys()) == 1 - assert 'Invalid phone number: Must not contain letters or symbols' in json_resp['message']['to'] + assert 'Invalid phone number: The string supplied did not seem to be a phone number.' \ + in json_resp['message']['to'] assert response.status_code == 400 @@ -338,7 +339,7 @@ def test_should_allow_valid_sms_notification(notify_api, sample_template, mocker mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'to': '07700 900 855', + 'to': '202 867 5309', 'template': str(sample_template.id) } @@ -497,7 +498,7 @@ def test_should_not_send_sms_if_team_api_key_and_not_a_service_user(client, samp mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'to': '07123123123', + 'to': '2028675300', 'template': str(sample_template.id), } @@ -550,7 +551,7 @@ def test_should_send_sms_to_anyone_with_test_key( mocker.patch('app.notifications.process_notifications.uuid.uuid4', return_value=fake_uuid) data = { - 'to': '07811111111', + 'to': '2028675300', 'template': sample_template.id } sample_template.service.restricted = restricted @@ -756,9 +757,9 @@ def test_should_not_persist_notification_or_send_email_if_simulated_email( @pytest.mark.parametrize('to_sms', [ - '07700 900000', - '07700 900111', - '07700 900222' + '2028675000', + '2028675111', + '+12028675222' ]) def test_should_not_persist_notification_or_send_sms_if_simulated_number( client, @@ -788,7 +789,7 @@ def test_should_not_persist_notification_or_send_sms_if_simulated_number( KEY_TYPE_NORMAL, KEY_TYPE_TEAM ]) @pytest.mark.parametrize('notification_type, to', [ - (SMS_TYPE, '07827992635'), + (SMS_TYPE, '2028675300'), (EMAIL_TYPE, 'non_guest_list_recipient@mail.com')] ) def test_should_not_send_notification_to_non_guest_list_recipient_in_trial_mode( @@ -842,7 +843,7 @@ def test_should_not_send_notification_to_non_guest_list_recipient_in_trial_mode( KEY_TYPE_NORMAL, KEY_TYPE_TEAM ]) @pytest.mark.parametrize('notification_type, to', [ - (SMS_TYPE, '07123123123'), + (SMS_TYPE, '2028675300'), (EMAIL_TYPE, 'guest_list_recipient@mail.com')] ) def test_should_send_notification_to_guest_list_recipient( @@ -893,7 +894,7 @@ def test_should_send_notification_to_guest_list_recipient( @pytest.mark.parametrize( 'notification_type, template_type, to', [ (EMAIL_TYPE, SMS_TYPE, 'notify@digital.cabinet-office.gov.uk'), - (SMS_TYPE, EMAIL_TYPE, '+447700900986') + (SMS_TYPE, EMAIL_TYPE, '+12028675309') ]) def test_should_error_if_notification_type_does_not_match_template_type( client, @@ -966,7 +967,7 @@ def test_create_template_raises_invalid_request_when_content_too_large( @pytest.mark.parametrize("notification_type, send_to", - [("sms", "07700 900 855"), + [("sms", "2028675309"), ("email", "sample@email.com")]) def test_send_notification_uses_priority_queue_when_template_is_marked_as_priority( client, @@ -999,7 +1000,7 @@ def test_send_notification_uses_priority_queue_when_template_is_marked_as_priori @pytest.mark.parametrize( "notification_type, send_to", - [("sms", "07700 900 855"), ("email", "sample@email.com")] + [("sms", "2028675309"), ("email", "sample@email.com")] ) def test_returns_a_429_limit_exceeded_if_rate_limit_exceeded( client, @@ -1042,7 +1043,7 @@ def test_should_allow_store_original_number_on_sms_notification(client, sample_t mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'to': '+(44) 7700-900 855', + 'to': '(202) 867-5309', 'template': str(sample_template.id) } @@ -1061,7 +1062,7 @@ def test_should_allow_store_original_number_on_sms_notification(client, sample_t assert notification_id notifications = Notification.query.all() assert len(notifications) == 1 - assert '+(44) 7700-900 855' == notifications[0].to + assert '(202) 867-5309' == notifications[0].to def test_should_not_allow_sending_to_international_number_without_international_permission( @@ -1070,7 +1071,7 @@ def test_should_not_allow_sending_to_international_number_without_international_ mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'to': '20-12-1234-1234', + 'to': '+(44) 7700-900 855', 'template': str(sample_template.id) } @@ -1088,29 +1089,6 @@ def test_should_not_allow_sending_to_international_number_without_international_ assert error_json['message'] == 'Cannot send to international mobile numbers' -def test_should_allow_sending_to_crown_dependency_number_without_international_permission( - client, mocker, notify_db_session -): - service = create_service() - - mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') - template = create_template(service) - - data = { - 'to': '07700-900-123', - 'template': str(template.id) - } - - auth_header = create_service_authorization_header(service_id=service.id) - - response = client.post( - path='/notifications/sms', - data=json.dumps(data), - headers=[('Content-Type', 'application/json'), auth_header]) - - assert response.status_code == 201 - - def test_should_allow_sending_to_international_number_with_international_permission( client, sample_service_full_permissions, mocker ): @@ -1118,7 +1096,7 @@ def test_should_allow_sending_to_international_number_with_international_permiss template = create_template(sample_service_full_permissions) data = { - 'to': '20-12-1234-1234', + 'to': '+(44) 7700-900 855', 'template': str(template.id) } @@ -1140,7 +1118,7 @@ def test_should_not_allow_sms_notifications_if_service_permission_not_set( mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'to': '+447700900986', + 'to': '+12028675309', 'template': str(sample_template_without_sms_permission.id) } @@ -1201,7 +1179,7 @@ def test_should_throw_exception_if_notification_type_is_invalid(client, sample_s @pytest.mark.parametrize("notification_type, recipient", - [("sms", '07700 900 855'), + [("sms", '2028675309'), ("email", "test@gov.uk") ] ) diff --git a/tests/app/service/send_notification/test_send_one_off_notification.py b/tests/app/service/send_notification/test_send_one_off_notification.py index 5443f42fb..d0065d0be 100644 --- a/tests/app/service/send_notification/test_send_one_off_notification.py +++ b/tests/app/service/send_notification/test_send_one_off_notification.py @@ -50,7 +50,7 @@ def test_send_one_off_notification_calls_celery_correctly(persist_mock, celery_m post_data = { 'template_id': str(template.id), - 'to': '07700 900 001', + 'to': '202-867-5309', 'created_by': str(service.created_by_id) } @@ -81,7 +81,7 @@ def test_send_one_off_notification_calls_persist_correctly_for_sms( post_data = { 'template_id': str(template.id), - 'to': '07700 900 001', + 'to': '202-867-5309', 'personalisation': {'name': 'foo'}, 'created_by': str(service.created_by_id) } @@ -118,14 +118,14 @@ def test_send_one_off_notification_calls_persist_correctly_for_international_sms post_data = { 'template_id': str(template.id), - 'to': '+1 555 0100', + 'to': '+(44) 7700-900 855', 'personalisation': {'name': 'foo'}, 'created_by': str(service.created_by_id) } send_one_off_notification(service.id, post_data) - assert persist_mock.call_args[1]['recipient'] == '+1 555 0100' + assert persist_mock.call_args[1]['recipient'] == '+(44) 7700-900 855' def test_send_one_off_notification_calls_persist_correctly_for_email( @@ -223,7 +223,7 @@ def test_send_one_off_notification_honors_research_mode(notify_db_session, persi post_data = { 'template_id': str(template.id), - 'to': '07700 900 001', + 'to': '202-867-5309', 'created_by': str(service.created_by_id) } @@ -239,7 +239,7 @@ def test_send_one_off_notification_honors_priority(notify_db_session, persist_mo post_data = { 'template_id': str(template.id), - 'to': '07700 900 001', + 'to': '202-867-5309', 'created_by': str(service.created_by_id) } @@ -263,9 +263,9 @@ def test_send_one_off_notification_raises_if_invalid_recipient(notify_db_session @pytest.mark.parametrize('recipient', [ - '07700 900 001', # not in team or guest_list - '07700900123', # in guest_list - '+447700-900-123', # in guest_list in different format + '2028675300', # not in team or guest_list + '2028765309', # in guest_list + '+1-202-876-5309', # in guest_list in different format ]) def test_send_one_off_notification_raises_if_cant_send_to_recipient( notify_db_session, @@ -274,7 +274,7 @@ def test_send_one_off_notification_raises_if_cant_send_to_recipient( service = create_service(restricted=True) template = create_template(service=service) dao_add_and_commit_guest_list_contacts([ - ServiceGuestList.from_string(service.id, MOBILE_TYPE, '07700900123'), + ServiceGuestList.from_string(service.id, MOBILE_TYPE, '2028765309'), ]) post_data = { @@ -331,7 +331,7 @@ def test_send_one_off_notification_fails_if_created_by_other_service(sample_temp post_data = { 'template_id': str(sample_template.id), - 'to': '07700 900 001', + 'to': '202-867-5309', 'created_by': str(user_not_in_service.id) } @@ -414,12 +414,12 @@ def test_send_one_off_sms_notification_should_use_sms_sender_reply_to_text(sampl template = create_template(service=sample_service, template_type=SMS_TYPE) sms_sender = create_service_sms_sender( service=sample_service, - sms_sender='07123123123', + sms_sender='2028675309', is_default=False ) data = { - 'to': '07111111111', + 'to': '2028675000', 'template_id': str(template.id), 'created_by': str(sample_service.created_by_id), 'sender_id': str(sms_sender.id), @@ -433,7 +433,7 @@ def test_send_one_off_sms_notification_should_use_sms_sender_reply_to_text(sampl queue=None ) - assert notification.reply_to_text == "447123123123" + assert notification.reply_to_text == "+12028675309" def test_send_one_off_sms_notification_should_use_default_service_reply_to_text(sample_service, celery_mock): @@ -441,12 +441,12 @@ def test_send_one_off_sms_notification_should_use_default_service_reply_to_text( sample_service.service_sms_senders[0].is_default = False create_service_sms_sender( service=sample_service, - sms_sender='07123123456', + sms_sender='2028675309', is_default=True ) data = { - 'to': '07111111111', + 'to': '2028675000', 'template_id': str(template.id), 'created_by': str(sample_service.created_by_id), } @@ -459,7 +459,7 @@ def test_send_one_off_sms_notification_should_use_default_service_reply_to_text( queue=None ) - assert notification.reply_to_text == "447123123456" + assert notification.reply_to_text == "+12028675309" def test_send_one_off_notification_should_throw_exception_if_reply_to_id_doesnot_exist( @@ -481,7 +481,7 @@ def test_send_one_off_notification_should_throw_exception_if_sms_sender_id_doesn sample_template ): data = { - 'to': '07700 900 001', + 'to': '2028675000', 'template_id': str(sample_template.id), 'sender_id': str(uuid.uuid4()), 'created_by': str(sample_template.service.created_by_id) diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 278446a7b..cbaa26c47 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -204,7 +204,7 @@ def test_get_live_services_data(sample_user, admin_request): { 'consent_to_research': None, 'contact_email': 'notify@digital.cabinet-office.gov.uk', - 'contact_mobile': '+447700900986', + 'contact_mobile': '+12028675309', 'contact_name': 'Test User', 'email_totals': 1, 'email_volume_intent': None, @@ -222,7 +222,7 @@ def test_get_live_services_data(sample_user, admin_request): { 'consent_to_research': None, 'contact_email': 'notify@digital.cabinet-office.gov.uk', - 'contact_mobile': '+447700900986', + 'contact_mobile': '+12028675309', 'contact_name': 'Test User', 'email_totals': 0, 'email_volume_intent': None, @@ -2474,7 +2474,7 @@ def test_send_one_off_notification(sample_service, admin_request, mocker): service_id=sample_service.id, _data={ 'template_id': str(template.id), - 'to': '07700900001', + 'to': '2028675309', 'created_by': str(sample_service.created_by_id) }, _expected_status=201 diff --git a/tests/app/service/test_service_guest_list.py b/tests/app/service/test_service_guest_list.py index 344777d26..d3e82307f 100644 --- a/tests/app/service/test_service_guest_list.py +++ b/tests/app/service/test_service_guest_list.py @@ -22,8 +22,8 @@ def test_get_guest_list_returns_data(client, sample_service_guest_list): def test_get_guest_list_separates_emails_and_phones(client, sample_service): dao_add_and_commit_guest_list_contacts([ ServiceGuestList.from_string(sample_service.id, EMAIL_TYPE, 'service@example.com'), - ServiceGuestList.from_string(sample_service.id, MOBILE_TYPE, '07123456789'), - ServiceGuestList.from_string(sample_service.id, MOBILE_TYPE, '+1800-555-555'), + ServiceGuestList.from_string(sample_service.id, MOBILE_TYPE, '2028675309'), + ServiceGuestList.from_string(sample_service.id, MOBILE_TYPE, '+1800-555-5555'), ]) response = client.get( @@ -32,7 +32,7 @@ def test_get_guest_list_separates_emails_and_phones(client, sample_service): assert response.status_code == 200 json_resp = json.loads(response.get_data(as_text=True)) assert json_resp['email_addresses'] == ['service@example.com'] - assert sorted(json_resp['phone_numbers']) == sorted(['+1800-555-555', '07123456789']) + assert sorted(json_resp['phone_numbers']) == sorted(['+1800-555-5555', '2028675309']) def test_get_guest_list_404s_with_unknown_service_id(client): @@ -57,7 +57,7 @@ def test_get_guest_list_returns_no_data(client, sample_service): def test_update_guest_list_replaces_old_guest_list(client, sample_service_guest_list): data = { 'email_addresses': ['foo@bar.com'], - 'phone_numbers': ['07123456789'] + 'phone_numbers': ['2028765309'] } response = client.put( @@ -69,7 +69,7 @@ def test_update_guest_list_replaces_old_guest_list(client, sample_service_guest_ assert response.status_code == 204 guest_list = ServiceGuestList.query.order_by(ServiceGuestList.recipient).all() assert len(guest_list) == 2 - assert guest_list[0].recipient == '07123456789' + assert guest_list[0].recipient == '2028765309' assert guest_list[1].recipient == 'foo@bar.com' @@ -77,7 +77,7 @@ def test_update_guest_list_doesnt_remove_old_guest_list_if_error(client, sample_ data = { 'email_addresses': [''], - 'phone_numbers': ['07123456789'] + 'phone_numbers': ['2028675309'] } response = client.put( diff --git a/tests/app/test_commands.py b/tests/app/test_commands.py index b2b6abd14..6f50f30f7 100644 --- a/tests/app/test_commands.py +++ b/tests/app/test_commands.py @@ -19,7 +19,7 @@ def test_create_test_user_command(notify_db_session, notify_api): notify_api.test_cli_runner().invoke( create_test_user, [ '--email', 'somebody@fake.gov', - '--mobile_number', '555-555-5555', + '--mobile_number', '202-555-5555', '--password', 'correct horse battery staple', '--name', 'Fake Personson', # '--auth_type', 'sms_auth', # this is the default diff --git a/tests/app/test_model.py b/tests/app/test_model.py index ae38ff48a..8e575504e 100644 --- a/tests/app/test_model.py +++ b/tests/app/test_model.py @@ -32,8 +32,8 @@ from tests.app.db import ( @pytest.mark.parametrize('mobile_number', [ - '5558675309', - '+15558675309' + '2348675309', + '+12348675309' ]) def test_should_build_service_guest_list_from_mobile_number(mobile_number): service_guest_list = ServiceGuestList.from_string('service_id', MOBILE_TYPE, mobile_number) @@ -93,7 +93,7 @@ def test_status_conversion(initial_statuses, expected_statuses): @freeze_time("2016-01-01 11:09:00.000000") @pytest.mark.parametrize('template_type, recipient', [ - ('sms', '+15558675309'), + ('sms', '+12028675309'), ('email', 'foo@bar.com'), ]) def test_notification_for_csv_returns_correct_type(sample_service, template_type, recipient): diff --git a/tests/app/user/test_rest.py b/tests/app/user/test_rest.py index 1031685cf..f06a26275 100644 --- a/tests/app/user/test_rest.py +++ b/tests/app/user/test_rest.py @@ -107,7 +107,7 @@ def test_post_user(admin_request, notify_db_session): "name": "Test User", "email_address": "user@digital.cabinet-office.gov.uk", "password": "password", - "mobile_number": "+447700900986", + "mobile_number": "+12028675309", "logged_in_at": None, "state": "active", "failed_login_count": 0, @@ -130,7 +130,7 @@ def test_post_user_without_auth_type(admin_request, notify_db_session): "name": "Test User", "email_address": "user@digital.cabinet-office.gov.uk", "password": "password", - "mobile_number": "+447700900986", + "mobile_number": "+12028675309", "permissions": {}, } @@ -149,7 +149,7 @@ def test_post_user_missing_attribute_email(admin_request, notify_db_session): data = { "name": "Test User", "password": "password", - "mobile_number": "+447700900986", + "mobile_number": "+12028675309", "logged_in_at": None, "state": "active", "failed_login_count": 0, @@ -169,7 +169,7 @@ def test_create_user_missing_attribute_password(admin_request, notify_db_session data = { "name": "Test User", "email_address": "user@digital.cabinet-office.gov.uk", - "mobile_number": "+447700900986", + "mobile_number": "+12028675309", "logged_in_at": None, "state": "active", "failed_login_count": 0, @@ -224,7 +224,7 @@ def test_cannot_create_user_with_empty_strings(admin_request, notify_db_session) ) assert resp['message'] == { 'email_address': ['Not a valid email address'], - 'mobile_number': ['Invalid phone number: Not enough digits'], + 'mobile_number': ['Invalid phone number: The string supplied did not seem to be a phone number.'], 'name': ['Invalid name'] } @@ -883,7 +883,8 @@ def test_cannot_update_user_with_mobile_number_as_empty_string(admin_request, sa _data={'mobile_number': ''}, _expected_status=400 ) - assert resp['message']['mobile_number'] == ['Invalid phone number: Not enough digits'] + assert resp['message']['mobile_number'] == [ + 'Invalid phone number: The string supplied did not seem to be a phone number.'] def test_cannot_update_user_password_using_attributes_method(admin_request, sample_user): @@ -1100,10 +1101,9 @@ def test_search_for_users_by_email_handles_incorrect_data_format(notify_db_sessi @pytest.mark.parametrize('number, expected_reply_to', [ - ("1-403-123-4567", "notify_international_sender"), - ("27 123 4569 2312", "notify_international_sender"), - ("30 123 4567 7890", "Notify"), - ("+20 123 4567 7890", "Notify"), + ("403-123-4567", "Notify"), + ("+30 123 4567 7890", "Notify"), + ("+27 123 4569 2312", "notify_international_sender"), ]) def test_get_sms_reply_to_for_notify_service(team_member_mobile_edit_template, number, expected_reply_to): # need to import locally to avoid db session errors, diff --git a/tests/app/user/test_rest_verify.py b/tests/app/user/test_rest_verify.py index 8bf0cd9e4..65217f0b2 100644 --- a/tests/app/user/test_rest_verify.py +++ b/tests/app/user/test_rest_verify.py @@ -522,7 +522,7 @@ def test_user_verify_email_code_fails_if_code_already_used(admin_request, sample def test_send_user_2fa_code_sends_from_number_for_international_numbers( client, sample_user, mocker, sms_code_template ): - sample_user.mobile_number = "601117224412" + sample_user.mobile_number = "+601117224412" auth_header = create_admin_authorization_header() mocker.patch('app.user.rest.create_secret_code', return_value='11111') mocker.patch('app.user.rest.send_notification_to_queue') diff --git a/tests/app/v2/notifications/test_notification_schemas.py b/tests/app/v2/notifications/test_notification_schemas.py index c41e9c12b..33a5b2030 100644 --- a/tests/app/v2/notifications/test_notification_schemas.py +++ b/tests/app/v2/notifications/test_notification_schemas.py @@ -102,11 +102,11 @@ def test_get_notifications_request_invalid_statuses_and_template_types(): .format(invalid_template_type) in error_messages -valid_json = {"phone_number": "07515111111", +valid_json = {"phone_number": "2028675309", "template_id": str(uuid.uuid4()) } valid_json_with_optionals = { - "phone_number": "07515111111", + "phone_number": "2028675309", "template_id": str(uuid.uuid4()), "reference": "reference from caller", "personalisation": {"key": "value"} @@ -130,7 +130,7 @@ def test_post_sms_schema_is_valid(input): def test_post_sms_json_schema_bad_uuid(template_id): j = { "template_id": template_id, - "phone_number": "07515111111" + "phone_number": "2028675309" } with pytest.raises(ValidationError) as e: validate(j, post_sms_request_schema) @@ -158,7 +158,7 @@ def test_post_sms_json_schema_bad_uuid_and_missing_phone_number(): def test_post_sms_schema_with_personalisation_that_is_not_a_dict(): j = { - "phone_number": "07515111111", + "phone_number": "2028675309", "template_id": str(uuid.uuid4()), "reference": "reference from caller", "personalisation": "not_a_dict" @@ -174,9 +174,9 @@ def test_post_sms_schema_with_personalisation_that_is_not_a_dict(): @pytest.mark.parametrize('invalid_phone_number, err_msg', [ - ('08515111111', 'phone_number Not a UK mobile number'), - ('07515111*11', 'phone_number Must not contain letters or symbols'), - ('notaphoneumber', 'phone_number Must not contain letters or symbols'), + ('08515111111', 'phone_number Phone number is not possible'), + ('07515111*11', 'phone_number Not enough digits'), + ('notaphoneumber', 'phone_number The string supplied did not seem to be a phone number.'), (7700900001, 'phone_number 7700900001 is not of type string'), (None, 'phone_number None is not of type string'), ([], 'phone_number [] is not of type string'), @@ -194,13 +194,13 @@ def test_post_sms_request_schema_invalid_phone_number(invalid_phone_number, err_ def test_post_sms_request_schema_invalid_phone_number_and_missing_template(): - j = {"phone_number": '08515111111', + j = {"phone_number": '5558675309', } with pytest.raises(ValidationError) as e: validate(j, post_sms_request_schema) errors = json.loads(str(e.value)).get('errors') assert len(errors) == 2 - assert {"error": "ValidationError", "message": "phone_number Not a UK mobile number"} in errors + assert {"error": "ValidationError", "message": "phone_number Phone number range is not in use"} in errors assert {"error": "ValidationError", "message": "template_id is a required property"} in errors @@ -269,7 +269,7 @@ def test_post_schema_valid_scheduled_for(schema): if schema == post_email_request_schema: j.update({"email_address": "joe@gmail.com"}) else: - j.update({"phone_number": "07515111111"}) + j.update({"phone_number": "2028675309"}) assert validate(j, schema) == j @@ -286,7 +286,7 @@ def test_post_email_schema_invalid_scheduled_for(invalid_datetime, schema): if schema == post_email_request_schema: j.update({"email_address": "joe@gmail.com"}) else: - j.update({"phone_number": "07515111111"}) + j.update({"phone_number": "2028675309"}) with pytest.raises(ValidationError) as e: validate(j, schema) error = json.loads(str(e.value)) @@ -299,7 +299,7 @@ def test_post_email_schema_invalid_scheduled_for(invalid_datetime, schema): @freeze_time("2017-05-12 13:00:00") def test_scheduled_for_raises_validation_error_when_in_the_past(): - j = {"phone_number": "07515111111", + j = {"phone_number": "2028675309", "template_id": str(uuid.uuid4()), "scheduled_for": "2017-05-12 10:00"} with pytest.raises(ValidationError) as e: @@ -312,7 +312,7 @@ def test_scheduled_for_raises_validation_error_when_in_the_past(): @freeze_time("2017-05-12 13:00:00") def test_scheduled_for_raises_validation_error_when_more_than_24_hours_in_the_future(): - j = {"phone_number": "07515111111", + j = {"phone_number": "2028675309", "template_id": str(uuid.uuid4()), "scheduled_for": "2017-05-13 14:00"} with pytest.raises(ValidationError) as e: diff --git a/tests/app/v2/notifications/test_post_notifications.py b/tests/app/v2/notifications/test_post_notifications.py index e5b2ab073..50e098b89 100644 --- a/tests/app/v2/notifications/test_post_notifications.py +++ b/tests/app/v2/notifications/test_post_notifications.py @@ -102,7 +102,7 @@ def test_post_sms_notification_uses_inbound_number_as_sender(client, notify_db_s def test_post_sms_notification_uses_inbound_number_reply_to_as_sender(client, notify_db_session, mocker): - service = create_service_with_inbound_number(inbound_number='07123123123') + service = create_service_with_inbound_number(inbound_number='2028675309') template = create_template(service=service, content="Hello (( Name))\nYour thing is due soon") mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') @@ -124,8 +124,8 @@ def test_post_sms_notification_uses_inbound_number_reply_to_as_sender(client, no assert len(notifications) == 1 notification_id = notifications[0].id assert resp_json['id'] == str(notification_id) - assert resp_json['content']['from_number'] == '447123123123' - assert notifications[0].reply_to_text == '447123123123' + assert resp_json['content']['from_number'] == '+12028675309' + assert notifications[0].reply_to_text == '+12028675309' mocked.assert_called_once_with([str(notification_id)], queue='send-sms-tasks') @@ -159,7 +159,7 @@ def test_post_sms_notification_returns_201_with_sms_sender_id( def test_post_sms_notification_uses_sms_sender_id_reply_to( client, sample_template_with_placeholders, mocker ): - sms_sender = create_service_sms_sender(service=sample_template_with_placeholders.service, sms_sender='07123123123') + sms_sender = create_service_sms_sender(service=sample_template_with_placeholders.service, sms_sender='2028675309') mocked = mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { 'phone_number': '+447700900855', @@ -176,10 +176,10 @@ def test_post_sms_notification_uses_sms_sender_id_reply_to( assert response.status_code == 201 resp_json = json.loads(response.get_data(as_text=True)) assert validate(resp_json, post_sms_response) == resp_json - assert resp_json['content']['from_number'] == '447123123123' + assert resp_json['content']['from_number'] == '+12028675309' notifications = Notification.query.all() assert len(notifications) == 1 - assert notifications[0].reply_to_text == '447123123123' + assert notifications[0].reply_to_text == '+12028675309' mocked.assert_called_once_with([resp_json['id']], queue='send-sms-tasks') @@ -189,7 +189,7 @@ def test_notification_reply_to_text_is_original_value_if_sender_is_changed_after sms_sender = create_service_sms_sender(service=sample_template.service, sms_sender='123456', is_default=False) mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'phone_number': '+447700900855', + 'phone_number': '+12028675309', 'template_id': str(sample_template.id), 'sms_sender_id': str(sms_sender.id) } @@ -220,7 +220,7 @@ def test_should_cache_template_lookups_in_memory(mocker, client, sample_template mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'phone_number': '+447700900855', + 'phone_number': '2028675309', 'template_id': str(sample_template.id), } @@ -455,9 +455,9 @@ def test_post_email_notification_returns_201(client, sample_email_template_with_ ('simulate-delivered@notifications.service.gov.uk', EMAIL_TYPE), ('simulate-delivered-2@notifications.service.gov.uk', EMAIL_TYPE), ('simulate-delivered-3@notifications.service.gov.uk', EMAIL_TYPE), - ('07700 900000', 'sms'), - ('07700 900111', 'sms'), - ('07700 900222', 'sms') + ('2028675000', 'sms'), + ('2028675111', 'sms'), + ('2028675222', 'sms') ]) def test_should_not_persist_or_send_notification_if_simulated_recipient( client, @@ -493,7 +493,7 @@ def test_should_not_persist_or_send_notification_if_simulated_recipient( @pytest.mark.parametrize("notification_type, key_send_to, send_to", - [("sms", "phone_number", "07700 900 855"), + [("sms", "phone_number", "2028675309"), ("email", "email_address", "sample@email.com")]) def test_send_notification_uses_priority_queue_when_template_is_marked_as_priority( client, @@ -532,7 +532,7 @@ def test_send_notification_uses_priority_queue_when_template_is_marked_as_priori @pytest.mark.parametrize( "notification_type, key_send_to, send_to", - [("sms", "phone_number", "07700 900 855"), ("email", "email_address", "sample@email.com")] + [("sms", "phone_number", "2028675309"), ("email", "email_address", "sample@email.com")] ) def test_returns_a_429_limit_exceeded_if_rate_limit_exceeded( client, @@ -581,7 +581,7 @@ def test_post_sms_notification_returns_400_if_not_allowed_to_send_int_sms( template = create_template(service=service) data = { - 'phone_number': '20-12-1234-1234', + 'phone_number': '+20-12-1234-1234', 'template_id': template.id } auth_header = create_service_authorization_header(service_id=service.id) @@ -627,7 +627,7 @@ def test_post_sms_notification_with_archived_reply_to_id_returns_400(client, sam @pytest.mark.parametrize('recipient,label,permission_type, notification_type,expected_error', [ - ('07700 900000', 'phone_number', 'email', 'sms', 'text messages'), + ('2028675309', 'phone_number', 'email', 'sms', 'text messages'), ('someone@test.com', 'email_address', 'sms', 'email', 'emails')]) def test_post_sms_notification_returns_400_if_not_allowed_to_send_notification( notify_db_session, client, recipient, label, permission_type, notification_type, expected_error @@ -691,7 +691,7 @@ def test_post_sms_notification_returns_201_if_allowed_to_send_int_sms( mocker.patch('app.celery.provider_tasks.deliver_sms.apply_async') data = { - 'phone_number': '20-12-1234-1234', + 'phone_number': '+20-12-1234-1234', 'template_id': sample_template.id } auth_header = create_service_authorization_header(service_id=sample_service.id)