diff --git a/app/inbound_sms/rest.py b/app/inbound_sms/rest.py index 0ee2b9e90..8ebcff298 100644 --- a/app/inbound_sms/rest.py +++ b/app/inbound_sms/rest.py @@ -3,7 +3,7 @@ from flask import ( jsonify, request ) -from notifications_utils.recipients import normalise_phone_number +from notifications_utils.recipients import validate_and_format_phone_number from app.dao.inbound_sms_dao import dao_get_inbound_sms_for_service, dao_count_inbound_sms_for_service from app.errors import register_errors @@ -23,7 +23,8 @@ def get_inbound_sms_for_service(service_id): user_number = request.args.get('user_number') if user_number: - user_number = normalise_phone_number(user_number) + # we use this to normalise to an international phone number + user_number = validate_and_format_phone_number(user_number) results = dao_get_inbound_sms_for_service(service_id, limit, user_number) diff --git a/app/notifications/receive_notifications.py b/app/notifications/receive_notifications.py index cbe17e09e..d053a4198 100644 --- a/app/notifications/receive_notifications.py +++ b/app/notifications/receive_notifications.py @@ -2,7 +2,7 @@ from urllib.parse import unquote import iso8601 from flask import jsonify, Blueprint, current_app, request -from notifications_utils.recipients import normalise_phone_number +from notifications_utils.recipients import validate_and_format_phone_number from app import statsd_client from app.dao.services_dao import dao_fetch_services_by_sms_sender @@ -64,8 +64,8 @@ def format_mmg_datetime(date): def create_inbound_mmg_sms_object(service, json): - message = format_mmg_message(json['Message']) - user_number = normalise_phone_number(json['MSISDN']) + message = format_message(json['Message']) + user_number = validate_and_format_phone_number(json['MSISDN']) provider_date = json.get('DateRecieved') if provider_date: diff --git a/tests/app/db.py b/tests/app/db.py index cdc0d7a79..8fcced1b1 100644 --- a/tests/app/db.py +++ b/tests/app/db.py @@ -190,7 +190,7 @@ def create_service_permission(service_id, permission=EMAIL_TYPE): def create_inbound_sms( service, notify_number=None, - user_number='7700900111', + user_number='447700900111', provider_date=None, provider_reference=None, content='Hello' diff --git a/tests/app/inbound_sms/test_rest.py b/tests/app/inbound_sms/test_rest.py index 70acaddd2..25f5d7cff 100644 --- a/tests/app/inbound_sms/test_rest.py +++ b/tests/app/inbound_sms/test_rest.py @@ -1,5 +1,6 @@ from datetime import datetime +import pytest from freezegun import freeze_time from tests.app.db import create_inbound_sms, create_service @@ -46,14 +47,19 @@ def test_get_inbound_sms_limits(admin_request, sample_service): assert sms['data'][0]['id'] == str(two.id) -def test_get_inbound_sms_filters_user_number(admin_request, sample_service): - # user_number in the db is normalised - one = create_inbound_sms(sample_service, user_number='7700900001') - two = create_inbound_sms(sample_service, user_number='7700900002') +@pytest.mark.parametrize('user_number', [ + '(07700) 900-001', + '+4407700900001', + '447700900001', +]) +def test_get_inbound_sms_filters_user_number(admin_request, sample_service, user_number): + # user_number in the db is international and normalised + one = create_inbound_sms(sample_service, user_number='447700900001') + two = create_inbound_sms(sample_service, user_number='447700900002') sms = admin_request.get( 'inbound_sms.get_inbound_sms_for_service', - endpoint_kwargs={'service_id': sample_service.id, 'user_number': '(07700) 900-001'} + endpoint_kwargs={'service_id': sample_service.id, 'user_number': user_number} ) assert len(sms['data']) == 1 diff --git a/tests/app/notifications/test_receive_notification.py b/tests/app/notifications/test_receive_notification.py index 5d93e5fd3..317d9452e 100644 --- a/tests/app/notifications/test_receive_notification.py +++ b/tests/app/notifications/test_receive_notification.py @@ -63,7 +63,7 @@ def test_create_inbound_mmg_sms_object(sample_service): assert inbound_sms.service_id == sample_service.id assert inbound_sms.notify_number == 'foo' - assert inbound_sms.user_number == '7700900001' + assert inbound_sms.user_number == '447700900001' assert inbound_sms.provider_date == datetime(2017, 1, 2, 3, 4, 5) assert inbound_sms.provider_reference == 'bar' assert inbound_sms._content != 'hello there 📩'