mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-31 20:00:00 -04:00
Merge pull request #1250 from alphagov/validate-international-csv
Allow international phone numbers in spreadsheet
This commit is contained in:
@@ -9,6 +9,7 @@ import pytest
|
||||
from bs4 import BeautifulSoup
|
||||
from flask import url_for
|
||||
from notifications_utils.template import LetterPreviewTemplate
|
||||
from notifications_utils.recipients import RecipientCSV
|
||||
|
||||
from app.main.views.send import get_check_messages_back_url
|
||||
|
||||
@@ -18,6 +19,8 @@ from tests.conftest import (
|
||||
mock_get_service_template,
|
||||
mock_get_service_template_with_placeholders,
|
||||
mock_get_service_letter_template,
|
||||
mock_get_service,
|
||||
mock_get_international_service,
|
||||
)
|
||||
|
||||
template_types = ['email', 'sms']
|
||||
@@ -293,7 +296,7 @@ def test_send_test_sms_message(
|
||||
fake_uuid
|
||||
):
|
||||
|
||||
expected_data = {'data': 'phone number\r\n07700 900 762\r\n', 'file_name': 'Test message'}
|
||||
expected_data = {'data': 'phone number\r\n07700 900762\r\n', 'file_name': 'Test message'}
|
||||
mocker.patch('app.main.views.send.s3download', return_value='phone number\r\n+4412341234')
|
||||
|
||||
response = logged_in_client.get(
|
||||
@@ -344,7 +347,7 @@ def test_send_test_sms_message_with_placeholders(
|
||||
):
|
||||
|
||||
expected_data = {
|
||||
'data': 'phone number,name\r\n07700 900 762,Jo\r\n',
|
||||
'data': 'phone number,name\r\n07700 900762,Jo\r\n',
|
||||
'file_name': 'Test message'
|
||||
}
|
||||
mocker.patch('app.main.views.send.s3download', return_value='phone number\r\n+4412341234')
|
||||
@@ -424,6 +427,42 @@ def test_upload_csvfile_with_valid_phone_shows_all_numbers(
|
||||
mock_get_detailed_service_for_today.assert_called_once_with(fake_uuid)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('service_mock, should_allow_international', [
|
||||
(mock_get_service, False),
|
||||
(mock_get_international_service, True),
|
||||
])
|
||||
def test_upload_csvfile_with_international_validates(
|
||||
mocker,
|
||||
api_user_active,
|
||||
logged_in_client,
|
||||
mock_get_service_template,
|
||||
mock_s3_upload,
|
||||
mock_has_permissions,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
fake_uuid,
|
||||
service_mock,
|
||||
should_allow_international,
|
||||
):
|
||||
|
||||
service_mock(mocker, api_user_active)
|
||||
mocker.patch('app.main.views.send.s3download', return_value='')
|
||||
mock_recipients = mocker.patch(
|
||||
'app.main.views.send.RecipientCSV',
|
||||
return_value=RecipientCSV("", template_type="sms"),
|
||||
)
|
||||
|
||||
response = logged_in_client.post(
|
||||
url_for('main.send_messages', service_id=fake_uuid, template_id=fake_uuid),
|
||||
data={'file': (BytesIO(''.encode('utf-8')), 'valid.csv')},
|
||||
content_type='multipart/form-data',
|
||||
follow_redirects=True,
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert mock_recipients.call_args[1]['international_sms'] == should_allow_international
|
||||
|
||||
|
||||
def test_test_message_can_only_be_sent_now(
|
||||
logged_in_client,
|
||||
mocker,
|
||||
|
||||
Reference in New Issue
Block a user