mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-02 15:38:19 -04:00
Users can set a value that appears as the sender of a text message.
It can be up to eleven characters alpha numeric, no special characters allowed.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import pytest
|
||||
from app.main.forms import RegisterUserForm
|
||||
from app.main.forms import RegisterUserForm, ServiceSmsSender
|
||||
from app.main.validators import ValidEmailDomainRegex, NoCommasInPlaceHolders
|
||||
from wtforms import ValidationError
|
||||
from unittest.mock import Mock
|
||||
@@ -121,3 +121,20 @@ def test_for_commas_in_placeholders(app_):
|
||||
NoCommasInPlaceHolders()(None, _gen_mock_field('Hello ((name,date))'))
|
||||
assert str(error.value) == 'You can’t have commas in your fields'
|
||||
NoCommasInPlaceHolders()(None, _gen_mock_field('Hello ((name))'))
|
||||
|
||||
|
||||
def test_sms_sender_form_validation(app_, mock_get_user_by_email):
|
||||
with app_.test_request_context():
|
||||
form = ServiceSmsSender()
|
||||
|
||||
form.sms_sender.data = 'elevenchars'
|
||||
form.validate()
|
||||
assert not form.errors
|
||||
|
||||
form.sms_sender.data = 'morethanelevenchars'
|
||||
form.validate()
|
||||
assert "Text message sender can't be longer than 11 characters" == form.errors['sms_sender'][0]
|
||||
|
||||
form.sms_sender.data = '###########'
|
||||
form.validate()
|
||||
assert 'Sms text message sender can only contain alpha-numeric characters' == form.errors['sms_sender'][0]
|
||||
|
||||
@@ -694,3 +694,44 @@ def test_does_not_show_research_mode_indicator(
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
element = page.find('span', {"id": "research-mode"})
|
||||
assert not element
|
||||
|
||||
|
||||
def test_set_text_message_sender(
|
||||
app_,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
mock_update_service,
|
||||
service_one):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user_with_permissions, mocker, service_one)
|
||||
data = {"sms_sender": "elevenchars"}
|
||||
response = client.post(url_for('main.service_set_sms_sender', service_id=service_one['id']),
|
||||
data=data,
|
||||
follow_redirects=True)
|
||||
assert response.status_code == 200
|
||||
|
||||
mock_update_service.assert_called_with(service_one['id'],
|
||||
service_one['name'],
|
||||
service_one['active'],
|
||||
service_one['message_limit'],
|
||||
service_one['restricted'],
|
||||
service_one['users'],
|
||||
service_one['email_from'],
|
||||
service_one['reply_to_email_address'],
|
||||
"elevenchars")
|
||||
|
||||
|
||||
def test_if_sms_sender_set_then_form_populated(app_,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
service_one):
|
||||
service_one['sms_sender'] = 'elevenchars'
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(active_user_with_permissions, mocker, service_one)
|
||||
response = client.get(url_for('main.service_set_sms_sender', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
assert page.find(id='sms_sender')['value'] == 'elevenchars'
|
||||
|
||||
@@ -100,7 +100,8 @@ def mock_update_service(mocker):
|
||||
restricted,
|
||||
users,
|
||||
email_from,
|
||||
reply_to_email_address=None):
|
||||
reply_to_email_address=None,
|
||||
sms_sender=None):
|
||||
service = service_json(
|
||||
service_id, service_name, users, message_limit=message_limit,
|
||||
active=active, restricted=restricted, email_from=email_from, reply_to_email_address=reply_to_email_address)
|
||||
|
||||
Reference in New Issue
Block a user