2016-02-26 10:54:06 +00:00
|
|
|
import pytest
|
|
|
|
|
|
2016-01-11 15:00:51 +00:00
|
|
|
from io import BytesIO
|
2016-01-14 16:00:13 +00:00
|
|
|
from flask import url_for
|
2016-02-26 10:54:06 +00:00
|
|
|
from unittest.mock import ANY
|
2016-03-09 12:10:50 +00:00
|
|
|
from tests import validate_route_permission
|
2016-01-13 17:32:40 +00:00
|
|
|
|
2016-02-22 17:17:18 +00:00
|
|
|
template_types = ['email', 'sms']
|
2016-01-13 17:32:40 +00:00
|
|
|
|
2016-02-22 17:17:18 +00:00
|
|
|
|
2016-03-07 18:47:05 +00:00
|
|
|
def test_upload_csvfile_with_errors_shows_check_page_with_errors(
|
2016-02-22 17:17:18 +00:00
|
|
|
app_,
|
|
|
|
|
api_user_active,
|
2016-02-26 10:54:06 +00:00
|
|
|
mocker,
|
2016-02-22 17:17:18 +00:00
|
|
|
mock_login,
|
2016-02-26 12:11:55 +00:00
|
|
|
mock_get_service,
|
2016-02-26 10:54:06 +00:00
|
|
|
mock_get_service_template,
|
2016-02-29 17:03:56 +00:00
|
|
|
mock_s3_upload,
|
|
|
|
|
mock_has_permissions
|
2016-02-22 17:17:18 +00:00
|
|
|
):
|
2016-01-13 22:34:36 +00:00
|
|
|
|
2016-03-10 20:03:53 +00:00
|
|
|
contents = u'phone number,name\n+44 123,test1\n+44 456,test2'
|
2016-02-26 10:54:06 +00:00
|
|
|
mocker.patch('app.main.views.send.s3download', return_value=contents)
|
2015-12-17 16:21:34 +00:00
|
|
|
|
2016-01-15 15:15:35 +00:00
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
2016-01-27 12:22:32 +00:00
|
|
|
client.login(api_user_active)
|
2016-02-22 17:17:18 +00:00
|
|
|
response = client.post(
|
|
|
|
|
url_for('main.send_messages', service_id=12345, template_id=54321),
|
2016-03-10 20:03:53 +00:00
|
|
|
data={'file': (BytesIO(contents.encode('utf-8')), 'invalid.csv')},
|
|
|
|
|
content_type='multipart/form-data',
|
2016-02-22 17:17:18 +00:00
|
|
|
follow_redirects=True
|
|
|
|
|
)
|
2016-01-11 15:00:51 +00:00
|
|
|
assert response.status_code == 200
|
|
|
|
|
content = response.get_data(as_text=True)
|
2016-03-07 18:47:05 +00:00
|
|
|
assert 'There was a problem with invalid.csv' in content
|
2016-01-11 15:00:51 +00:00
|
|
|
assert '+44 123' in content
|
|
|
|
|
assert '+44 456' in content
|
2016-03-07 18:47:05 +00:00
|
|
|
assert 'Not a UK mobile number' in content
|
|
|
|
|
assert 'Re-upload your file' in content
|
2016-02-26 10:54:06 +00:00
|
|
|
|
|
|
|
|
|
2016-03-29 16:52:33 +01:00
|
|
|
def test_send_test_sms_message_to_self(
|
2016-02-18 17:03:32 +00:00
|
|
|
app_,
|
|
|
|
|
mocker,
|
|
|
|
|
api_user_active,
|
|
|
|
|
mock_login,
|
2016-02-26 12:11:55 +00:00
|
|
|
mock_get_service,
|
2016-02-26 10:54:06 +00:00
|
|
|
mock_get_service_template,
|
2016-02-29 17:03:56 +00:00
|
|
|
mock_s3_upload,
|
|
|
|
|
mock_has_permissions
|
2016-02-18 17:03:32 +00:00
|
|
|
):
|
|
|
|
|
|
2016-03-29 16:52:33 +01:00
|
|
|
expected_data = {'data': 'phone number\r\n+4412341234\r\n', 'file_name': 'Test run'}
|
2016-03-01 09:41:08 +00:00
|
|
|
mocker.patch('app.main.views.send.s3download', return_value='phone number\r\n+4412341234')
|
2016-02-26 10:54:06 +00:00
|
|
|
|
2016-02-18 17:03:32 +00:00
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
|
|
|
|
client.login(api_user_active)
|
|
|
|
|
response = client.get(
|
2016-02-22 17:17:18 +00:00
|
|
|
url_for('main.send_message_to_self', service_id=12345, template_id=54321),
|
2016-02-18 17:03:32 +00:00
|
|
|
follow_redirects=True
|
|
|
|
|
)
|
|
|
|
|
assert response.status_code == 200
|
2016-02-26 10:54:06 +00:00
|
|
|
mock_s3_upload.assert_called_with(ANY, '12345', expected_data, 'eu-west-1')
|
2016-02-18 17:03:32 +00:00
|
|
|
|
|
|
|
|
|
2016-03-29 16:52:33 +01:00
|
|
|
def test_send_test_email_message_to_self(
|
2016-03-02 17:02:41 +00:00
|
|
|
app_,
|
|
|
|
|
mocker,
|
|
|
|
|
api_user_active,
|
|
|
|
|
mock_login,
|
|
|
|
|
mock_get_service,
|
|
|
|
|
mock_get_service_email_template,
|
2016-03-03 09:30:30 +00:00
|
|
|
mock_s3_upload,
|
|
|
|
|
mock_has_permissions
|
2016-03-02 17:02:41 +00:00
|
|
|
):
|
|
|
|
|
|
2016-03-07 18:47:05 +00:00
|
|
|
expected_data = {'data': 'email address\r\ntest@user.gov.uk\r\n', 'file_name': 'Test run'}
|
2016-03-02 17:02:41 +00:00
|
|
|
mocker.patch('app.main.views.send.s3download', return_value='email address\r\ntest@user.gov.uk')
|
|
|
|
|
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
|
|
|
|
client.login(api_user_active)
|
|
|
|
|
response = client.get(
|
|
|
|
|
url_for('main.send_message_to_self', service_id=12345, template_id=54321),
|
|
|
|
|
follow_redirects=True
|
|
|
|
|
)
|
|
|
|
|
assert response.status_code == 200
|
|
|
|
|
mock_s3_upload.assert_called_with(ANY, '12345', expected_data, 'eu-west-1')
|
|
|
|
|
|
|
|
|
|
|
2016-03-15 06:53:06 +00:00
|
|
|
def test_send_test_message_from_api_page(
|
|
|
|
|
app_,
|
|
|
|
|
mocker,
|
|
|
|
|
api_user_active,
|
|
|
|
|
mock_login,
|
|
|
|
|
mock_get_service,
|
|
|
|
|
mock_get_service_email_template,
|
|
|
|
|
mock_s3_upload,
|
|
|
|
|
mock_has_permissions
|
|
|
|
|
):
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
|
|
|
|
client.login(api_user_active)
|
|
|
|
|
response = client.get(
|
|
|
|
|
url_for('main.send_from_api', service_id=12345, template_id=54321),
|
|
|
|
|
follow_redirects=True
|
|
|
|
|
)
|
|
|
|
|
assert response.status_code == 200
|
|
|
|
|
assert 'API integration' in response.get_data(as_text=True)
|
|
|
|
|
|
|
|
|
|
|
2016-02-18 17:03:32 +00:00
|
|
|
def test_download_example_csv(
|
|
|
|
|
app_,
|
|
|
|
|
mocker,
|
|
|
|
|
api_user_active,
|
|
|
|
|
mock_login,
|
2016-02-26 12:11:55 +00:00
|
|
|
mock_get_service,
|
2016-02-29 17:03:56 +00:00
|
|
|
mock_get_service_template,
|
|
|
|
|
mock_has_permissions
|
2016-02-18 17:03:32 +00:00
|
|
|
):
|
|
|
|
|
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
|
|
|
|
client.login(api_user_active)
|
|
|
|
|
response = client.get(
|
|
|
|
|
url_for('main.get_example_csv', service_id=12345, template_id=54321),
|
|
|
|
|
follow_redirects=True
|
|
|
|
|
)
|
|
|
|
|
assert response.status_code == 200
|
2016-03-01 09:41:08 +00:00
|
|
|
assert response.get_data(as_text=True) == 'phone number\r\n+4412341234\r\n'
|
2016-02-18 17:03:32 +00:00
|
|
|
assert 'text/csv' in response.headers['Content-Type']
|
|
|
|
|
|
|
|
|
|
|
2016-02-22 17:17:18 +00:00
|
|
|
def test_upload_csvfile_with_valid_phone_shows_all_numbers(
|
|
|
|
|
app_,
|
|
|
|
|
mocker,
|
|
|
|
|
api_user_active,
|
|
|
|
|
mock_login,
|
2016-02-26 12:11:55 +00:00
|
|
|
mock_get_service,
|
2016-02-26 10:54:06 +00:00
|
|
|
mock_get_service_template,
|
2016-02-29 17:03:56 +00:00
|
|
|
mock_s3_upload,
|
|
|
|
|
mock_has_permissions
|
2016-02-22 17:17:18 +00:00
|
|
|
):
|
2016-01-13 22:34:36 +00:00
|
|
|
|
2016-03-07 18:47:05 +00:00
|
|
|
mocker.patch(
|
|
|
|
|
'app.main.views.send.s3download',
|
2016-03-10 20:03:53 +00:00
|
|
|
return_value="""
|
|
|
|
|
phone number
|
|
|
|
|
+44 7700 9009 01
|
|
|
|
|
+44 7700 9009 02
|
|
|
|
|
+44 7700 9009 03
|
|
|
|
|
+44 7700 9009 04
|
|
|
|
|
+44 7700 9009 05
|
|
|
|
|
+44 7700 9009 06
|
|
|
|
|
+44 7700 9009 07
|
|
|
|
|
+44 7700 9009 08
|
|
|
|
|
+44 7700 9009 09
|
|
|
|
|
+44 7700 9009 10
|
|
|
|
|
+44 7700 9009 11
|
|
|
|
|
+44 7700 9009 12
|
|
|
|
|
+44 7700 9009 13
|
|
|
|
|
+44 7700 9009 14
|
|
|
|
|
+44 7700 9009 15
|
|
|
|
|
+44 7700 9009 99
|
|
|
|
|
+44 7700 9009 99
|
|
|
|
|
+44 7700 9009 99
|
|
|
|
|
"""
|
2016-03-07 18:47:05 +00:00
|
|
|
)
|
2016-01-11 15:00:51 +00:00
|
|
|
|
2016-01-15 15:15:35 +00:00
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
2016-01-27 12:22:32 +00:00
|
|
|
client.login(api_user_active)
|
2016-03-07 18:47:05 +00:00
|
|
|
response = client.post(
|
|
|
|
|
url_for('main.send_messages', service_id=12345, template_id=54321),
|
2016-03-10 20:03:53 +00:00
|
|
|
data={'file': (BytesIO(''.encode('utf-8')), 'valid.csv')},
|
|
|
|
|
content_type='multipart/form-data',
|
2016-03-07 18:47:05 +00:00
|
|
|
follow_redirects=True
|
|
|
|
|
)
|
2016-02-22 14:52:16 +00:00
|
|
|
with client.session_transaction() as sess:
|
|
|
|
|
assert int(sess['upload_data']['template_id']) == 54321
|
|
|
|
|
assert sess['upload_data']['original_file_name'] == 'valid.csv'
|
2016-03-10 20:03:53 +00:00
|
|
|
assert sess['upload_data']['notification_count'] == 18
|
2016-01-11 15:00:51 +00:00
|
|
|
|
2016-02-22 14:52:16 +00:00
|
|
|
content = response.get_data(as_text=True)
|
|
|
|
|
assert response.status_code == 200
|
2016-03-10 20:03:53 +00:00
|
|
|
assert '+44 7700 9009 01' in content
|
|
|
|
|
assert '+44 7700 9009 15' in content
|
|
|
|
|
assert '+44 7700 9009 16' not in content
|
|
|
|
|
assert '3 rows not shown' in content
|
2016-01-11 15:00:51 +00:00
|
|
|
|
|
|
|
|
|
2016-02-22 17:17:18 +00:00
|
|
|
def test_create_job_should_call_api(
|
|
|
|
|
app_,
|
|
|
|
|
service_one,
|
|
|
|
|
api_user_active,
|
|
|
|
|
mock_login,
|
|
|
|
|
job_data,
|
|
|
|
|
mock_create_job,
|
|
|
|
|
mock_get_job,
|
2016-03-02 15:37:35 +00:00
|
|
|
mock_get_notifications,
|
2016-02-26 12:11:55 +00:00
|
|
|
mock_get_service,
|
2016-02-29 17:03:56 +00:00
|
|
|
mock_get_service_template,
|
|
|
|
|
mock_has_permissions
|
2016-02-22 17:17:18 +00:00
|
|
|
):
|
2016-01-29 10:27:23 +00:00
|
|
|
|
2016-01-29 12:19:50 +00:00
|
|
|
service_id = service_one['id']
|
2016-02-01 11:28:36 +00:00
|
|
|
job_id = job_data['id']
|
|
|
|
|
original_file_name = job_data['original_file_name']
|
|
|
|
|
template_id = job_data['template']
|
2016-02-22 14:52:16 +00:00
|
|
|
notification_count = job_data['notification_count']
|
2016-01-29 10:27:23 +00:00
|
|
|
|
2016-01-15 15:15:35 +00:00
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
2016-01-27 12:22:32 +00:00
|
|
|
client.login(api_user_active)
|
2016-02-01 11:28:36 +00:00
|
|
|
with client.session_transaction() as session:
|
2016-02-22 14:52:16 +00:00
|
|
|
session['upload_data'] = {'original_file_name': original_file_name,
|
|
|
|
|
'template_id': template_id,
|
2016-03-07 18:47:05 +00:00
|
|
|
'notification_count': notification_count,
|
|
|
|
|
'valid': True}
|
|
|
|
|
url = url_for('main.start_job', service_id=service_one['id'], upload_id=job_id)
|
2016-01-29 10:27:23 +00:00
|
|
|
response = client.post(url, data=job_data, follow_redirects=True)
|
|
|
|
|
|
|
|
|
|
assert response.status_code == 200
|
2016-03-02 21:19:02 +00:00
|
|
|
assert original_file_name in response.get_data(as_text=True)
|
2016-02-22 14:52:16 +00:00
|
|
|
mock_create_job.assert_called_with(job_id, service_id, template_id, original_file_name, notification_count)
|
2016-03-03 15:26:52 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_check_messages_should_revalidate_file_when_uploading_file(
|
|
|
|
|
app_,
|
|
|
|
|
service_one,
|
|
|
|
|
api_user_active,
|
|
|
|
|
mock_login,
|
|
|
|
|
mock_get_service,
|
|
|
|
|
job_data,
|
|
|
|
|
mock_create_job,
|
|
|
|
|
mock_get_service_template,
|
|
|
|
|
mock_s3_upload,
|
2016-03-03 15:39:15 +00:00
|
|
|
mocker,
|
|
|
|
|
mock_has_permissions
|
2016-03-03 15:26:52 +00:00
|
|
|
):
|
|
|
|
|
|
|
|
|
|
service_id = service_one['id']
|
|
|
|
|
|
2016-03-07 18:47:05 +00:00
|
|
|
mocker.patch(
|
|
|
|
|
'app.main.views.send.s3download',
|
2016-03-10 20:03:53 +00:00
|
|
|
return_value="""
|
|
|
|
|
phone number,name,,,
|
2016-03-24 13:48:11 +00:00
|
|
|
123,test1,,,
|
|
|
|
|
123,test2,,,
|
2016-03-10 20:03:53 +00:00
|
|
|
"""
|
2016-03-07 18:47:05 +00:00
|
|
|
)
|
2016-03-03 15:26:52 +00:00
|
|
|
with app_.test_request_context():
|
|
|
|
|
with app_.test_client() as client:
|
|
|
|
|
client.login(api_user_active)
|
|
|
|
|
with client.session_transaction() as session:
|
|
|
|
|
session['upload_data'] = {'original_file_name': 'invalid.csv',
|
|
|
|
|
'template_id': job_data['template'],
|
2016-03-10 20:03:53 +00:00
|
|
|
'notification_count': job_data['notification_count'],
|
|
|
|
|
'valid': True}
|
2016-03-07 18:47:05 +00:00
|
|
|
response = client.post(
|
2016-03-29 15:59:53 +01:00
|
|
|
url_for('main.start_job', service_id=service_id, upload_id=job_data['id']),
|
2016-03-10 20:03:53 +00:00
|
|
|
data={'file': (BytesIO(''.encode('utf-8')), 'invalid.csv')},
|
|
|
|
|
content_type='multipart/form-data',
|
2016-03-07 18:47:05 +00:00
|
|
|
follow_redirects=True
|
|
|
|
|
)
|
2016-03-03 15:26:52 +00:00
|
|
|
assert response.status_code == 200
|
2016-03-07 18:47:05 +00:00
|
|
|
assert 'There was a problem with invalid.csv' in response.get_data(as_text=True)
|
2016-03-09 12:10:50 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_route_permissions(mocker,
|
|
|
|
|
app_,
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one,
|
|
|
|
|
mock_get_service_template,
|
2016-03-09 14:11:24 +00:00
|
|
|
mock_get_service_templates,
|
2016-03-09 12:10:50 +00:00
|
|
|
mock_get_jobs,
|
|
|
|
|
mock_get_notifications,
|
|
|
|
|
mock_create_job,
|
|
|
|
|
mock_s3_upload):
|
|
|
|
|
routes = [
|
|
|
|
|
'main.choose_template',
|
|
|
|
|
'main.send_messages',
|
|
|
|
|
'main.get_example_csv']
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
for route in routes:
|
|
|
|
|
validate_route_permission(
|
|
|
|
|
mocker,
|
|
|
|
|
app_,
|
|
|
|
|
"GET",
|
|
|
|
|
200,
|
|
|
|
|
url_for(
|
|
|
|
|
route,
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_type='sms',
|
|
|
|
|
template_id=123),
|
|
|
|
|
['send_texts', 'send_emails', 'send_letters'],
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one)
|
|
|
|
|
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
validate_route_permission(
|
|
|
|
|
mocker,
|
|
|
|
|
app_,
|
|
|
|
|
"GET",
|
|
|
|
|
302,
|
|
|
|
|
url_for(
|
|
|
|
|
'main.send_message_to_self',
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_type='sms',
|
|
|
|
|
template_id=123),
|
|
|
|
|
['send_texts', 'send_emails', 'send_letters'],
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_route_invalid_permissions(mocker,
|
|
|
|
|
app_,
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one,
|
|
|
|
|
mock_get_service_template,
|
2016-03-09 14:11:24 +00:00
|
|
|
mock_get_service_templates,
|
2016-03-09 12:10:50 +00:00
|
|
|
mock_get_jobs,
|
|
|
|
|
mock_get_notifications,
|
|
|
|
|
mock_create_job):
|
|
|
|
|
routes = [
|
|
|
|
|
'main.choose_template',
|
|
|
|
|
'main.send_messages',
|
|
|
|
|
'main.get_example_csv',
|
|
|
|
|
'main.send_message_to_self']
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
for route in routes:
|
|
|
|
|
validate_route_permission(
|
|
|
|
|
mocker,
|
|
|
|
|
app_,
|
|
|
|
|
"GET",
|
|
|
|
|
403,
|
|
|
|
|
url_for(
|
|
|
|
|
route,
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_type='sms',
|
|
|
|
|
template_id=123),
|
|
|
|
|
['blah'],
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one)
|
2016-03-09 13:51:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_route_choose_template_manage_service_permissions(mocker,
|
|
|
|
|
app_,
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one,
|
|
|
|
|
mock_login,
|
|
|
|
|
mock_get_user,
|
|
|
|
|
mock_get_service,
|
|
|
|
|
mock_check_verify_code,
|
|
|
|
|
mock_get_service_templates,
|
|
|
|
|
mock_get_jobs):
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
template_id = mock_get_service_templates(service_one['id'])['data'][0]['id']
|
|
|
|
|
resp = validate_route_permission(
|
|
|
|
|
mocker,
|
|
|
|
|
app_,
|
|
|
|
|
"GET",
|
|
|
|
|
200,
|
|
|
|
|
url_for(
|
|
|
|
|
'main.choose_template',
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_type='sms'),
|
|
|
|
|
['manage_users', 'manage_templates', 'manage_settings'],
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one)
|
|
|
|
|
page = resp.get_data(as_text=True)
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.send_messages",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) not in page
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.send_message_to_self",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) not in page
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.edit_service_template",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) in page
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_route_choose_template_send_messages_permissions(mocker,
|
|
|
|
|
app_,
|
2016-03-18 16:20:37 +00:00
|
|
|
active_user_with_permissions,
|
2016-03-09 13:51:56 +00:00
|
|
|
service_one,
|
|
|
|
|
mock_get_service,
|
|
|
|
|
mock_check_verify_code,
|
|
|
|
|
mock_get_service_templates,
|
|
|
|
|
mock_get_jobs):
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
template_id = mock_get_service_templates(service_one['id'])['data'][0]['id']
|
|
|
|
|
resp = validate_route_permission(
|
|
|
|
|
mocker,
|
|
|
|
|
app_,
|
|
|
|
|
"GET",
|
|
|
|
|
200,
|
|
|
|
|
url_for(
|
|
|
|
|
'main.choose_template',
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_type='sms'),
|
|
|
|
|
['send_texts', 'send_emails', 'send_letters'],
|
2016-03-18 16:20:37 +00:00
|
|
|
active_user_with_permissions,
|
2016-03-09 13:51:56 +00:00
|
|
|
service_one)
|
|
|
|
|
page = resp.get_data(as_text=True)
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.send_messages",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) in page
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.send_message_to_self",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) in page
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.edit_service_template",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) not in page
|
2016-03-18 14:43:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_route_choose_template_manage_api_keys_permissions(mocker,
|
|
|
|
|
app_,
|
|
|
|
|
api_user_active,
|
|
|
|
|
service_one,
|
|
|
|
|
mock_get_user,
|
|
|
|
|
mock_get_service,
|
|
|
|
|
mock_check_verify_code,
|
|
|
|
|
mock_get_service_templates,
|
|
|
|
|
mock_get_jobs):
|
|
|
|
|
with app_.test_request_context():
|
|
|
|
|
template_id = mock_get_service_templates(service_one['id'])['data'][0]['id']
|
|
|
|
|
resp = validate_route_permission(
|
|
|
|
|
mocker,
|
|
|
|
|
app_,
|
|
|
|
|
"GET",
|
|
|
|
|
200,
|
|
|
|
|
url_for(
|
|
|
|
|
'main.choose_template',
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_type='sms'),
|
2016-03-29 17:33:12 +01:00
|
|
|
['manage_api_keys'],
|
2016-03-18 14:43:03 +00:00
|
|
|
api_user_active,
|
|
|
|
|
service_one)
|
|
|
|
|
page = resp.get_data(as_text=True)
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.send_messages",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) in page
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.send_message_to_self",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) not in page
|
|
|
|
|
assert url_for(
|
|
|
|
|
"main.edit_service_template",
|
|
|
|
|
service_id=service_one['id'],
|
|
|
|
|
template_id=template_id) not in page
|