Merge pull request #4124 from alphagov/format-inbound-sms-download

Format phone numbers with spaces in download of received text messages
This commit is contained in:
Chris Hill-Scott
2022-01-10 11:12:27 +00:00
committed by GitHub
4 changed files with 41 additions and 33 deletions

View File

@@ -15,6 +15,7 @@ from flask import (
url_for,
)
from flask_login import current_user
from notifications_utils.recipients import format_phone_number_human_readable
from werkzeug.utils import redirect
from app import (
@@ -202,7 +203,7 @@ def inbox_download(service_id):
'Message',
'Received',
]] + [[
message['user_number'],
format_phone_number_human_readable(message['user_number']),
message['content'].lstrip(('=+-@')),
format_datetime_numeric(message['created_at']),
] for message in service_api_client.get_inbound_sms(service_id)['data']]

View File

@@ -364,6 +364,30 @@ def org_invite_json(id_, invited_by, org_id, email_address, created_at, status):
}
def inbound_sms_json():
return {
'has_next': True,
'data': [{
'user_number': phone_number,
'notify_number': '07900000002',
'content': f'message-{index + 1}',
'created_at': (
datetime.utcnow() - timedelta(minutes=60 * hours_ago, seconds=index)
).isoformat(),
'id': sample_uuid(),
} for index, hours_ago, phone_number in (
(0, 1, '447900900000'),
(1, 1, '07900900000'),
(2, 1, '07900900000'),
(3, 3, '07900900002'),
(4, 5, '33(0)1 12345678'), # France
(5, 7, '1-202-555-0104'), # USA in one format
(6, 9, '+12025550104'), # USA in another format
(7, 9, '+68212345'), # Cook Islands
)]
}
TEST_USER_EMAIL = 'test@user.gov.uk'

View File

@@ -268,10 +268,10 @@ def test_inbound_messages_shows_count_of_messages_when_there_are_no_messages(
'07900 900000 message-2 1 hour ago',
'07900 900000 message-3 1 hour ago',
'07900 900002 message-4 3 hours ago',
'07900 900004 message-5 5 hours ago',
'07900 900006 message-6 7 hours ago',
'07900 900008 message-7 9 hours ago',
'07900 900008 message-8 9 hours ago',
'+33 1 12 34 56 78 message-5 5 hours ago',
'+1 202-555-0104 message-6 7 hours ago',
'+1 202-555-0104 message-7 9 hours ago',
'+682 12345 message-8 9 hours ago',
]))
def test_inbox_showing_inbound_messages(
client_request,
@@ -434,14 +434,14 @@ def test_download_inbox(
)
assert response.get_data(as_text=True) == (
'Phone number,Message,Received\r\n'
'07900900000,message-1,2016-07-01 13:00\r\n'
'07900900000,message-2,2016-07-01 12:59\r\n'
'07900900000,message-3,2016-07-01 12:59\r\n'
'07900900002,message-4,2016-07-01 10:59\r\n'
'07900900004,message-5,2016-07-01 08:59\r\n'
'07900900006,message-6,2016-07-01 06:59\r\n'
'07900900008,message-7,2016-07-01 04:59\r\n'
'07900900008,message-8,2016-07-01 04:59\r\n'
'07900 900000,message-1,2016-07-01 13:00\r\n'
'07900 900000,message-2,2016-07-01 12:59\r\n'
'07900 900000,message-3,2016-07-01 12:59\r\n'
'07900 900002,message-4,2016-07-01 10:59\r\n'
'+33 1 12 34 56 78,message-5,2016-07-01 08:59\r\n'
'+1 202-555-0104,message-6,2016-07-01 06:59\r\n'
'+1 202-555-0104,message-7,2016-07-01 04:59\r\n'
'+682 12345,message-8,2016-07-01 04:59\r\n'
)

View File

@@ -22,6 +22,7 @@ from . import (
broadcast_message_json,
contact_list_json,
generate_uuid,
inbound_sms_json,
invite_json,
job_json,
notification_json,
@@ -2021,16 +2022,7 @@ def mock_get_inbound_sms(mocker):
user_number=None,
page=1
):
return {
'has_next': True,
'data': [{
'user_number': '0790090000' + str(i),
'notify_number': '07900000002',
'content': 'message-{}'.format(index + 1),
'created_at': (datetime.utcnow() - timedelta(minutes=60 * (i + 1), seconds=index)).isoformat(),
'id': sample_uuid(),
} for index, i in enumerate([0, 0, 0, 2, 4, 6, 8, 8])]
}
return inbound_sms_json()
return mocker.patch(
'app.service_api_client.get_inbound_sms',
@@ -2059,16 +2051,7 @@ def mock_get_most_recent_inbound_sms(mocker):
user_number=None,
page=1
):
return {
'has_next': True,
'data': [{
'user_number': '0790090000' + str(i),
'notify_number': '07900000002',
'content': 'message-{}'.format(index + 1),
'created_at': (datetime.utcnow() - timedelta(minutes=60 * (i + 1), seconds=index)).isoformat(),
'id': sample_uuid(),
} for index, i in enumerate([0, 0, 0, 2, 4, 6, 8, 8])]
}
return inbound_sms_json()
return mocker.patch(
'app.service_api_client.get_most_recent_inbound_sms',