mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-11 09:28:27 -04:00
update tests to work with new correct logged_in_client fixtures
mostly making sure that the correct user is set up. some minor changes, such as giving the platform_admin service permissions (so that we can test that platform admins can send letters)
This commit is contained in:
@@ -16,7 +16,7 @@ letters_urls = [
|
||||
(False, 403)
|
||||
])
|
||||
def test_letters_access_restricted(
|
||||
logged_in_client,
|
||||
logged_in_platform_admin_client,
|
||||
mocker,
|
||||
can_send_letters,
|
||||
response_code,
|
||||
@@ -26,7 +26,7 @@ def test_letters_access_restricted(
|
||||
service = service_json(can_send_letters=can_send_letters)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
||||
|
||||
response = logged_in_client.get(url(service_id=service['id']))
|
||||
response = logged_in_platform_admin_client.get(url(service_id=service['id']))
|
||||
|
||||
assert response.status_code == response_code
|
||||
|
||||
|
||||
@@ -1,43 +1,57 @@
|
||||
from flask import url_for
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from tests import service_json
|
||||
from tests.conftest import mock_get_user
|
||||
|
||||
|
||||
def test_can_see_letters_if_allowed(logged_in_client, mocker):
|
||||
service = service_json(can_send_letters=True)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
||||
def test_can_see_letters_if_allowed(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
mocker,
|
||||
mock_get_users_by_service,
|
||||
mock_get_invites_for_service
|
||||
):
|
||||
service_one['can_send_letters'] = True
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service_one})
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service['id']))
|
||||
response = logged_in_client.get(url_for('main.manage_users', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
assert 'Letter templates' in page.find('nav', class_='navigation').text
|
||||
|
||||
|
||||
def test_cant_see_letters_if_not_allowed(logged_in_client, mocker):
|
||||
service = service_json(can_send_letters=False)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
||||
def test_cant_see_letters_if_not_allowed(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
mocker,
|
||||
mock_get_users_by_service,
|
||||
mock_get_invites_for_service
|
||||
):
|
||||
service_one['can_send_letters'] = False
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service_one})
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service['id']))
|
||||
response = logged_in_client.get(url_for('main.manage_users', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
assert 'Letter templates' not in page.find('nav', class_='navigation').text
|
||||
|
||||
|
||||
def test_can_see_letters_without_permissions(
|
||||
def test_can_see_letters_without_edit_permissions(
|
||||
client,
|
||||
mocker,
|
||||
mock_login,
|
||||
mock_has_permissions,
|
||||
api_user_active,
|
||||
active_user_view_permissions,
|
||||
mock_get_users_by_service,
|
||||
mock_get_invites_for_service,
|
||||
service_one
|
||||
):
|
||||
service = service_json(can_send_letters=True)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
||||
mock_get_user(mocker, user=active_user_view_permissions)
|
||||
service_one['can_send_letters'] = True
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service_one})
|
||||
|
||||
client.login(api_user_active)
|
||||
response = client.get(url_for('main.service_settings', service_id=service['id']))
|
||||
client.login(active_user_view_permissions)
|
||||
response = client.get(url_for('main.manage_users', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
|
||||
@@ -416,20 +416,21 @@ def test_create_job_should_call_api(
|
||||
|
||||
|
||||
def test_can_start_letters_job(
|
||||
logged_in_client,
|
||||
logged_in_platform_admin_client,
|
||||
mock_create_job,
|
||||
mock_get_service_letter_template,
|
||||
service_one,
|
||||
fake_uuid
|
||||
):
|
||||
with logged_in_client.session_transaction() as session:
|
||||
|
||||
with logged_in_platform_admin_client.session_transaction() as session:
|
||||
session['upload_data'] = {
|
||||
'original_file_name': 'example.csv',
|
||||
'template_id': fake_uuid,
|
||||
'notification_count': 123,
|
||||
'valid': True
|
||||
}
|
||||
response = logged_in_client.post(
|
||||
url_for('main.start_job', service_id=fake_uuid, upload_id=fake_uuid),
|
||||
response = logged_in_platform_admin_client.post(
|
||||
url_for('main.start_job', service_id=service_one['id'], upload_id=fake_uuid),
|
||||
data={}
|
||||
)
|
||||
assert response.status_code == 302
|
||||
@@ -447,13 +448,16 @@ def test_should_show_preview_letter_message(
|
||||
mock_letter_preview,
|
||||
view,
|
||||
expected_content_type,
|
||||
logged_in_client,
|
||||
logged_in_platform_admin_client,
|
||||
mock_get_service_letter_template,
|
||||
mock_get_users_by_service,
|
||||
mock_get_detailed_service_for_today,
|
||||
service_one,
|
||||
fake_uuid,
|
||||
mocker,
|
||||
):
|
||||
service_one['can_send_letters'] = True
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service_one})
|
||||
|
||||
mocker.patch(
|
||||
'app.main.views.send.s3download',
|
||||
@@ -463,16 +467,18 @@ def test_should_show_preview_letter_message(
|
||||
)
|
||||
)
|
||||
|
||||
service_id = fake_uuid
|
||||
service_id = service_one['id']
|
||||
template_id = fake_uuid
|
||||
with logged_in_client.session_transaction() as session:
|
||||
with logged_in_platform_admin_client.session_transaction() as session:
|
||||
session['upload_data'] = {
|
||||
'original_file_name': 'example.csv',
|
||||
'template_id': fake_uuid,
|
||||
'notification_count': 1,
|
||||
'valid': True
|
||||
}
|
||||
response = logged_in_client.get(url_for(view, service_id=service_id, template_type='letter', upload_id=fake_uuid))
|
||||
response = logged_in_platform_admin_client.get(
|
||||
url_for(view, service_id=service_id, template_type='letter', upload_id=fake_uuid)
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.content_type == expected_content_type
|
||||
@@ -917,16 +923,16 @@ def test_check_messages_shows_over_max_row_error(
|
||||
)
|
||||
|
||||
|
||||
def test_check_messages_redirects_if_no_upload_data(logged_in_client, mocker):
|
||||
def test_check_messages_redirects_if_no_upload_data(logged_in_client, service_one, mocker):
|
||||
checker = mocker.patch('app.main.views.send.get_check_messages_back_url', return_value='foo')
|
||||
response = logged_in_client.get(url_for(
|
||||
'main.check_messages',
|
||||
service_id='0',
|
||||
service_id=service_one['id'],
|
||||
template_type='bar',
|
||||
upload_id='baz'
|
||||
))
|
||||
|
||||
checker.assert_called_once_with('0', 'bar')
|
||||
checker.assert_called_once_with(service_one['id'], 'bar')
|
||||
assert response.status_code == 301
|
||||
assert response.location == 'http://localhost/foo'
|
||||
|
||||
@@ -942,14 +948,14 @@ def test_get_check_messages_back_url_returns_to_correct_select_template(client,
|
||||
)
|
||||
|
||||
|
||||
def test_check_messages_back_from_help_goes_to_start_of_help(client, mocker):
|
||||
def test_check_messages_back_from_help_goes_to_start_of_help(client, service_one, mocker):
|
||||
mocker.patch('app.main.views.send.get_help_argument', return_value=True)
|
||||
mocker.patch('app.service_api_client.get_service_templates', lambda service_id: {
|
||||
'data': [template_json('000', '111', type_='sms')]
|
||||
'data': [template_json(service_one['id'], '111', type_='sms')]
|
||||
})
|
||||
assert get_check_messages_back_url('000', 'sms') == url_for(
|
||||
assert get_check_messages_back_url(service_one['id'], 'sms') == url_for(
|
||||
'main.send_test',
|
||||
service_id='000',
|
||||
service_id=service_one['id'],
|
||||
template_id='111',
|
||||
help='1'
|
||||
)
|
||||
|
||||
@@ -12,10 +12,7 @@ from tests import validate_route_permission, service_json
|
||||
|
||||
def test_should_show_overview(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
service_one,
|
||||
mock_get_organisation,
|
||||
):
|
||||
response = logged_in_client.get(url_for(
|
||||
'main.service_settings', service_id=service_one['id']
|
||||
@@ -54,8 +51,6 @@ def test_should_show_overview_for_service_with_more_things_set(
|
||||
|
||||
def test_should_show_service_name(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
service_one,
|
||||
):
|
||||
response = logged_in_client.get(url_for(
|
||||
@@ -70,13 +65,8 @@ def test_should_show_service_name(
|
||||
def test_should_redirect_after_change_service_name(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
active_user_with_permissions,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
mock_get_service,
|
||||
mock_update_service,
|
||||
mock_get_services,
|
||||
mock_has_permissions,
|
||||
):
|
||||
response = logged_in_client.post(
|
||||
url_for('main.service_name_change', service_id=service_one['id']),
|
||||
@@ -92,12 +82,6 @@ def test_should_redirect_after_change_service_name(
|
||||
def test_show_restricted_service(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_has_permissions,
|
||||
mock_get_service,
|
||||
mock_get_organisation,
|
||||
):
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
@@ -106,17 +90,11 @@ def test_show_restricted_service(
|
||||
|
||||
|
||||
def test_switch_service_to_live(
|
||||
logged_in_client,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_get_service,
|
||||
mock_update_service,
|
||||
mock_has_permissions,
|
||||
mock_get_organisation,
|
||||
):
|
||||
response = logged_in_client.get(
|
||||
response = logged_in_platform_admin_client.get(
|
||||
url_for('main.service_switch_live', service_id=service_one['id']))
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for(
|
||||
@@ -132,12 +110,7 @@ def test_switch_service_to_live(
|
||||
def test_show_live_service(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_get_live_service,
|
||||
mock_has_permissions,
|
||||
mock_get_organisation,
|
||||
mock_get_live_service
|
||||
):
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
@@ -146,17 +119,12 @@ def test_show_live_service(
|
||||
|
||||
|
||||
def test_switch_service_to_restricted(
|
||||
logged_in_client,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_get_live_service,
|
||||
mock_update_service,
|
||||
mock_has_permissions,
|
||||
mock_get_organisation,
|
||||
mock_update_service
|
||||
):
|
||||
response = logged_in_client.get(
|
||||
response = logged_in_platform_admin_client.get(
|
||||
url_for('main.service_switch_live', service_id=service_one['id']))
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for(
|
||||
@@ -171,7 +139,6 @@ def test_switch_service_to_restricted(
|
||||
|
||||
def test_should_not_allow_duplicate_names(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
service_one,
|
||||
):
|
||||
@@ -190,8 +157,6 @@ def test_should_not_allow_duplicate_names(
|
||||
|
||||
def test_should_show_service_name_confirmation(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
service_one,
|
||||
):
|
||||
response = logged_in_client.get(url_for(
|
||||
@@ -205,14 +170,10 @@ def test_should_show_service_name_confirmation(
|
||||
|
||||
def test_should_redirect_after_service_name_confirmation(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
service_one,
|
||||
mocker,
|
||||
mock_update_service,
|
||||
mock_verify_password,
|
||||
mock_get_organisation,
|
||||
mock_verify_password
|
||||
):
|
||||
logged_in_client.login(active_user_with_permissions, mocker, service_one)
|
||||
service_id = service_one['id']
|
||||
service_new_name = 'New Name'
|
||||
with logged_in_client.session_transaction() as session:
|
||||
@@ -233,13 +194,9 @@ def test_should_redirect_after_service_name_confirmation(
|
||||
|
||||
def test_should_raise_duplicate_name_handled(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
service_one,
|
||||
mocker,
|
||||
mock_get_services,
|
||||
mock_update_service_raise_httperror_duplicate_name,
|
||||
mock_verify_password,
|
||||
fake_uuid,
|
||||
mock_verify_password
|
||||
):
|
||||
service_new_name = 'New Name'
|
||||
with logged_in_client.session_transaction() as session:
|
||||
@@ -257,18 +214,11 @@ def test_should_raise_duplicate_name_handled(
|
||||
|
||||
def test_should_show_request_to_go_live(
|
||||
logged_in_client,
|
||||
api_user_active,
|
||||
mock_get_service,
|
||||
mock_get_user,
|
||||
mock_get_user_by_email,
|
||||
mock_login,
|
||||
mock_has_permissions,
|
||||
fake_uuid,
|
||||
service_one
|
||||
):
|
||||
service_id = fake_uuid
|
||||
response = logged_in_client.get(
|
||||
url_for('main.service_request_to_go_live', service_id=service_id))
|
||||
service = mock_get_service.side_effect(service_id)['data']
|
||||
url_for('main.service_request_to_go_live', service_id=service_one['id']))
|
||||
assert response.status_code == 200
|
||||
resp_data = response.get_data(as_text=True)
|
||||
assert 'Request to go live' in resp_data
|
||||
@@ -277,18 +227,15 @@ def test_should_show_request_to_go_live(
|
||||
|
||||
def test_should_redirect_after_request_to_go_live(
|
||||
logged_in_client,
|
||||
api_user_active,
|
||||
mock_get_user,
|
||||
mock_get_service,
|
||||
mock_has_permissions,
|
||||
mock_get_organisation,
|
||||
active_user_with_permissions,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
mock_post = mocker.patch(
|
||||
'app.main.views.feedback.requests.post',
|
||||
return_value=Mock(status_code=201))
|
||||
response = logged_in_client.post(
|
||||
url_for('main.service_request_to_go_live', service_id='6ce466d0-fd6a-11e5-82f5-e0accb9d11a6'),
|
||||
url_for('main.service_request_to_go_live', service_id=service_one['id']),
|
||||
data={
|
||||
'mou': 'yes',
|
||||
'channel': 'emails',
|
||||
@@ -303,12 +250,12 @@ def test_should_redirect_after_request_to_go_live(
|
||||
mock_post.assert_called_with(
|
||||
ANY,
|
||||
data={
|
||||
'subject': 'Request to go live - Test Service',
|
||||
'subject': 'Request to go live - service one',
|
||||
'department_id': ANY,
|
||||
'agent_team_id': ANY,
|
||||
'message': ANY,
|
||||
'person_name': api_user_active.name,
|
||||
'person_email': api_user_active.email_address
|
||||
'person_name': active_user_with_permissions.name,
|
||||
'person_email': active_user_with_permissions.email_address
|
||||
},
|
||||
headers=ANY
|
||||
)
|
||||
@@ -330,10 +277,7 @@ def test_should_redirect_after_request_to_go_live(
|
||||
def test_log_error_on_request_to_go_live(
|
||||
app_,
|
||||
logged_in_client,
|
||||
api_user_active,
|
||||
mock_get_user,
|
||||
mock_get_service,
|
||||
mock_has_permissions,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
mock_post = mocker.patch(
|
||||
@@ -348,8 +292,8 @@ def test_log_error_on_request_to_go_live(
|
||||
)
|
||||
mock_logger = mocker.patch.object(app_.logger, 'error')
|
||||
with pytest.raises(InternalServerError):
|
||||
resp = logged_in_client.post(
|
||||
url_for('main.service_request_to_go_live', service_id='6ce466d0-fd6a-11e5-82f5-e0accb9d11a6'),
|
||||
logged_in_client.post(
|
||||
url_for('main.service_request_to_go_live', service_id=service_one['id']),
|
||||
data={
|
||||
'mou': 'yes',
|
||||
'channel': 'emails',
|
||||
@@ -469,11 +413,8 @@ def test_route_for_platform_admin_update_service(
|
||||
|
||||
def test_set_reply_to_email_address(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
mock_update_service,
|
||||
service_one,
|
||||
mock_get_organisation,
|
||||
):
|
||||
data = {"email_address": "test@someservice.gov.uk"}
|
||||
response = logged_in_client.post(url_for('main.service_set_reply_to_email', service_id=service_one['id']),
|
||||
@@ -488,8 +429,6 @@ def test_set_reply_to_email_address(
|
||||
|
||||
def test_if_reply_to_email_address_set_then_form_populated(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
service_one,
|
||||
):
|
||||
service_one['reply_to_email_address'] = 'test@service.gov.uk'
|
||||
@@ -501,75 +440,53 @@ def test_if_reply_to_email_address_set_then_form_populated(
|
||||
|
||||
|
||||
def test_switch_service_to_research_mode(
|
||||
logged_in_client,
|
||||
logged_in_platform_admin_client,
|
||||
platform_admin_user,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_get_service,
|
||||
mock_has_permissions,
|
||||
mocker,
|
||||
):
|
||||
mocker.patch('app.service_api_client.post', return_value=service_one)
|
||||
response = logged_in_client.get(url_for('main.service_switch_research_mode', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(
|
||||
url_for('main.service_switch_research_mode', service_id=service_one['id'])
|
||||
)
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
app.service_api_client.post.assert_called_with(
|
||||
'/service/{}'.format(service_one['id']),
|
||||
{
|
||||
'research_mode': True,
|
||||
'created_by': active_user_with_permissions.id
|
||||
'created_by': platform_admin_user.id
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def test_switch_service_from_research_mode_to_normal(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_get_service,
|
||||
mock_has_permissions,
|
||||
logged_in_platform_admin_client,
|
||||
mocker,
|
||||
):
|
||||
service = service_json(
|
||||
users=[active_user_with_permissions.id],
|
||||
restricted=True,
|
||||
research_mode=True
|
||||
)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
||||
mocker.patch('app.service_api_client.update_service_with_properties', return_value=service_one)
|
||||
update_service_mock = mocker.patch('app.service_api_client.update_service_with_properties', return_value=service)
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_switch_research_mode', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(
|
||||
url_for('main.service_switch_research_mode', service_id=service['id'])
|
||||
)
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
app.service_api_client.update_service_with_properties.assert_called_with(
|
||||
service_one['id'], {"research_mode": False}
|
||||
assert response.location == url_for('main.service_settings', service_id=service['id'], _external=True)
|
||||
update_service_mock.assert_called_with(
|
||||
service['id'], {"research_mode": False}
|
||||
)
|
||||
|
||||
|
||||
def test_shows_research_mode_indicator(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_get_service,
|
||||
mock_has_permissions,
|
||||
mock_get_organisation,
|
||||
mocker,
|
||||
):
|
||||
service = service_json(
|
||||
"1234",
|
||||
"Test Service",
|
||||
[active_user_with_permissions.id],
|
||||
message_limit=1000,
|
||||
active=False,
|
||||
restricted=True,
|
||||
research_mode=True
|
||||
)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
||||
service_one['research_mode'] = True
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service_one})
|
||||
mocker.patch('app.service_api_client.update_service_with_properties', return_value=service_one)
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
@@ -583,13 +500,6 @@ def test_shows_research_mode_indicator(
|
||||
def test_does_not_show_research_mode_indicator(
|
||||
logged_in_client,
|
||||
service_one,
|
||||
mock_login,
|
||||
mock_get_user,
|
||||
active_user_with_permissions,
|
||||
mock_get_service,
|
||||
mock_has_permissions,
|
||||
mock_get_organisation,
|
||||
mocker,
|
||||
):
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
assert response.status_code == 200
|
||||
@@ -601,11 +511,8 @@ def test_does_not_show_research_mode_indicator(
|
||||
|
||||
def test_set_text_message_sender(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
mock_update_service,
|
||||
service_one,
|
||||
mock_get_organisation,
|
||||
):
|
||||
data = {"sms_sender": "elevenchars"}
|
||||
response = logged_in_client.post(url_for('main.service_set_sms_sender', service_id=service_one['id']),
|
||||
@@ -621,8 +528,6 @@ def test_set_text_message_sender(
|
||||
|
||||
def test_if_sms_sender_set_then_form_populated(
|
||||
logged_in_client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
service_one,
|
||||
):
|
||||
service_one['sms_sender'] = 'elevenchars'
|
||||
@@ -634,13 +539,11 @@ def test_if_sms_sender_set_then_form_populated(
|
||||
|
||||
|
||||
def test_should_show_branding(
|
||||
mocker,
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mock_get_organisations,
|
||||
mock_get_organisations
|
||||
):
|
||||
response = logged_in_client.get(url_for(
|
||||
response = logged_in_platform_admin_client.get(url_for(
|
||||
'main.service_set_branding_and_org', service_id=service_one['id']
|
||||
))
|
||||
assert response.status_code == 200
|
||||
@@ -659,13 +562,11 @@ def test_should_show_branding(
|
||||
|
||||
|
||||
def test_should_show_organisations(
|
||||
mocker,
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mock_get_organisations,
|
||||
mock_get_organisations
|
||||
):
|
||||
response = logged_in_client.get(url_for(
|
||||
response = logged_in_platform_admin_client.get(url_for(
|
||||
'main.service_set_branding_and_org', service_id=service_one['id']
|
||||
))
|
||||
assert response.status_code == 200
|
||||
@@ -684,14 +585,12 @@ def test_should_show_organisations(
|
||||
|
||||
|
||||
def test_should_set_branding_and_organisations(
|
||||
mocker,
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mock_get_organisations,
|
||||
mock_update_service,
|
||||
):
|
||||
response = logged_in_client.post(
|
||||
response = logged_in_platform_admin_client.post(
|
||||
url_for(
|
||||
'main.service_set_branding_and_org', service_id=service_one['id']
|
||||
),
|
||||
@@ -703,8 +602,8 @@ def test_should_set_branding_and_organisations(
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
|
||||
app.organisations_client.get_organisations.assert_called_once_with()
|
||||
app.service_api_client.update_service.assert_called_once_with(
|
||||
mock_get_organisations.assert_called_once_with()
|
||||
mock_update_service.assert_called_once_with(
|
||||
service_one['id'],
|
||||
branding='org',
|
||||
organisation='organisation-id'
|
||||
@@ -712,14 +611,15 @@ def test_should_set_branding_and_organisations(
|
||||
|
||||
|
||||
def test_switch_service_enable_letters(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
mocked_fn = mocker.patch('app.service_api_client.update_service_with_properties', return_value=service_one)
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_switch_can_send_letters', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(
|
||||
url_for('main.service_switch_can_send_letters', service_id=service_one['id'])
|
||||
)
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
@@ -727,30 +627,31 @@ def test_switch_service_enable_letters(
|
||||
|
||||
|
||||
def test_switch_service_disable_letters(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
service = service_json("1234", "Test Service", [], can_send_letters=True)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service})
|
||||
mocked_fn = mocker.patch('app.service_api_client.update_service_with_properties', return_value=service)
|
||||
service_one['can_send_letters'] = True
|
||||
mocker.patch('app.service_api_client.get_service', return_value={"data": service_one})
|
||||
mocked_fn = mocker.patch('app.service_api_client.update_service_with_properties', return_value=service_one)
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_switch_can_send_letters', service_id=service['id']))
|
||||
response = logged_in_platform_admin_client.get(
|
||||
url_for('main.service_switch_can_send_letters', service_id=service_one['id'])
|
||||
)
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service['id'], _external=True)
|
||||
assert mocked_fn.call_args == call(service['id'], {"can_send_letters": False})
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
assert mocked_fn.call_args == call(service_one['id'], {"can_send_letters": False})
|
||||
|
||||
|
||||
def test_archive_service_after_confirm(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
mocked_fn = mocker.patch('app.service_api_client.post', return_value=service_one)
|
||||
|
||||
response = logged_in_client.post(url_for('main.archive_service', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.post(url_for('main.archive_service', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
@@ -758,14 +659,13 @@ def test_archive_service_after_confirm(
|
||||
|
||||
|
||||
def test_archive_service_prompts_user(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
mocked_fn = mocker.patch('app.service_api_client.post')
|
||||
|
||||
response = logged_in_client.get(url_for('main.archive_service', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(url_for('main.archive_service', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
@@ -774,14 +674,12 @@ def test_archive_service_prompts_user(
|
||||
|
||||
|
||||
def test_cant_archive_inactive_service(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
service_one['active'] = False
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
@@ -789,14 +687,13 @@ def test_cant_archive_inactive_service(
|
||||
|
||||
|
||||
def test_suspend_service_after_confirm(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
mocked_fn = mocker.patch('app.service_api_client.post', return_value=service_one)
|
||||
|
||||
response = logged_in_client.post(url_for('main.suspend_service', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.post(url_for('main.suspend_service', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
@@ -804,14 +701,13 @@ def test_suspend_service_after_confirm(
|
||||
|
||||
|
||||
def test_suspend_service_prompts_user(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
mocked_fn = mocker.patch('app.service_api_client.post')
|
||||
|
||||
response = logged_in_client.get(url_for('main.suspend_service', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(url_for('main.suspend_service', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
@@ -821,14 +717,12 @@ def test_suspend_service_prompts_user(
|
||||
|
||||
|
||||
def test_cant_suspend_inactive_service(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
service_one['active'] = False
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
@@ -836,15 +730,14 @@ def test_cant_suspend_inactive_service(
|
||||
|
||||
|
||||
def test_resume_service_after_confirm(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
service_one['active'] = False
|
||||
mocked_fn = mocker.patch('app.service_api_client.post', return_value=service_one)
|
||||
|
||||
response = logged_in_client.post(url_for('main.resume_service', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.post(url_for('main.resume_service', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('main.service_settings', service_id=service_one['id'], _external=True)
|
||||
@@ -852,15 +745,14 @@ def test_resume_service_after_confirm(
|
||||
|
||||
|
||||
def test_resume_service_prompts_user(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
service_one['active'] = False
|
||||
mocked_fn = mocker.patch('app.service_api_client.post')
|
||||
|
||||
response = logged_in_client.get(url_for('main.resume_service', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(url_for('main.resume_service', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
@@ -870,12 +762,10 @@ def test_resume_service_prompts_user(
|
||||
|
||||
|
||||
def test_cant_resume_active_service(
|
||||
logged_in_client,
|
||||
platform_admin_user,
|
||||
logged_in_platform_admin_client,
|
||||
service_one,
|
||||
mocker,
|
||||
):
|
||||
response = logged_in_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
response = logged_in_platform_admin_client.get(url_for('main.service_settings', service_id=service_one['id']))
|
||||
|
||||
assert response.status_code == 200
|
||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||
|
||||
@@ -14,53 +14,43 @@ from app.main.views.templates import get_last_use_message, get_human_readable_de
|
||||
|
||||
|
||||
def test_should_show_page_for_one_template(
|
||||
client,
|
||||
active_user_with_permissions,
|
||||
mocker,
|
||||
logged_in_client,
|
||||
mock_get_service_template,
|
||||
service_one,
|
||||
fake_uuid,
|
||||
):
|
||||
|
||||
service = create_sample_service(active_user_with_permissions)
|
||||
client.login(active_user_with_permissions, mocker, service)
|
||||
service_id = service['id']
|
||||
template_id = fake_uuid
|
||||
response = client.get(url_for(
|
||||
response = logged_in_client.get(url_for(
|
||||
'.edit_service_template',
|
||||
service_id=service_id,
|
||||
service_id=service_one['id'],
|
||||
template_id=template_id))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert "Two week reminder" in response.get_data(as_text=True)
|
||||
assert "Template <em>content</em> with & entity" in response.get_data(as_text=True)
|
||||
assert "Use priority queue?" not in response.get_data(as_text=True)
|
||||
mock_get_service_template.assert_called_with(
|
||||
service_id, template_id)
|
||||
mock_get_service_template.assert_called_with(service_one['id'], template_id)
|
||||
|
||||
|
||||
def test_should_show_page_template_with_priority_select_if_platform_admin(
|
||||
logged_in_client,
|
||||
logged_in_platform_admin_client,
|
||||
platform_admin_user,
|
||||
mocker,
|
||||
mock_get_service_template,
|
||||
fake_uuid,
|
||||
):
|
||||
|
||||
service = create_sample_service(platform_admin_user)
|
||||
mocker.patch('app.user_api_client.get_users_for_service', return_value=[platform_admin_user])
|
||||
service_id = service['id']
|
||||
template_id = fake_uuid
|
||||
response = logged_in_client.get(url_for(
|
||||
response = logged_in_platform_admin_client.get(url_for(
|
||||
'.edit_service_template',
|
||||
service_id=service_id,
|
||||
service_id='1234',
|
||||
template_id=template_id))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert "Two week reminder" in response.get_data(as_text=True)
|
||||
assert "Template <em>content</em> with & entity" in response.get_data(as_text=True)
|
||||
assert "Use priority queue?" in response.get_data(as_text=True)
|
||||
mock_get_service_template.assert_called_with(
|
||||
service_id, template_id)
|
||||
mock_get_service_template.assert_called_with('1234', template_id)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('view_suffix, expected_content_type', [
|
||||
@@ -278,28 +268,22 @@ def test_should_show_interstitial_when_making_breaking_change(
|
||||
|
||||
def test_should_not_create_too_big_template(
|
||||
logged_in_client,
|
||||
api_user_active,
|
||||
mock_login,
|
||||
service_one,
|
||||
mock_get_service_template,
|
||||
mock_get_user,
|
||||
mock_get_service,
|
||||
mock_get_user_by_email,
|
||||
mock_create_service_template_content_too_big,
|
||||
mock_has_permissions,
|
||||
fake_uuid,
|
||||
):
|
||||
service_id = fake_uuid
|
||||
template_type = 'sms'
|
||||
data = {
|
||||
'name': "new name",
|
||||
'template_content': "template content",
|
||||
'template_type': template_type,
|
||||
'service': service_id,
|
||||
'service': service_one['id'],
|
||||
'process_type': 'normal'
|
||||
}
|
||||
resp = logged_in_client.post(url_for(
|
||||
'.add_service_template',
|
||||
service_id=service_id,
|
||||
service_id=service_one['id'],
|
||||
template_type=template_type
|
||||
), data=data)
|
||||
|
||||
@@ -309,29 +293,23 @@ def test_should_not_create_too_big_template(
|
||||
|
||||
def test_should_not_update_too_big_template(
|
||||
logged_in_client,
|
||||
api_user_active,
|
||||
mock_login,
|
||||
service_one,
|
||||
mock_get_service_template,
|
||||
mock_get_user,
|
||||
mock_get_service,
|
||||
mock_get_user_by_email,
|
||||
mock_update_service_template_400_content_too_big,
|
||||
mock_has_permissions,
|
||||
fake_uuid,
|
||||
):
|
||||
service_id = fake_uuid
|
||||
template_id = fake_uuid
|
||||
data = {
|
||||
'id': fake_uuid,
|
||||
'name': "new name",
|
||||
'template_content': "template content",
|
||||
'service': service_id,
|
||||
'service': service_one['id'],
|
||||
'template_type': 'sms',
|
||||
'process_type': 'normal'
|
||||
}
|
||||
resp = logged_in_client.post(url_for(
|
||||
'.edit_service_template',
|
||||
service_id=service_id,
|
||||
service_id=service_one['id'],
|
||||
template_id=template_id), data=data)
|
||||
|
||||
assert resp.status_code == 200
|
||||
|
||||
@@ -520,7 +520,14 @@ def platform_admin_user(fake_uuid):
|
||||
'mobile_number': '07700 900762',
|
||||
'state': 'active',
|
||||
'failed_login_count': 0,
|
||||
'permissions': {},
|
||||
'permissions': {SERVICE_ONE_ID: ['send_texts',
|
||||
'send_emails',
|
||||
'send_letters',
|
||||
'manage_users',
|
||||
'manage_templates',
|
||||
'manage_settings',
|
||||
'manage_api_keys',
|
||||
'view_activity']},
|
||||
'platform_admin': True
|
||||
}
|
||||
user = User(user_data)
|
||||
@@ -589,6 +596,25 @@ def active_user_with_permissions(fake_uuid):
|
||||
return user
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def active_user_view_permissions(fake_uuid):
|
||||
from app.notify_client.user_api_client import User
|
||||
|
||||
user_data = {'id': fake_uuid,
|
||||
'name': 'Test User With Permissions',
|
||||
'password': 'somepassword',
|
||||
'password_changed_at': str(datetime.utcnow()),
|
||||
'email_address': 'test@user.gov.uk',
|
||||
'mobile_number': '07700 900762',
|
||||
'state': 'active',
|
||||
'failed_login_count': 0,
|
||||
'permissions': {SERVICE_ONE_ID: ['view_activity']},
|
||||
'platform_admin': False
|
||||
}
|
||||
user = User(user_data)
|
||||
return user
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def api_user_locked(fake_uuid):
|
||||
from app.notify_client.user_api_client import User
|
||||
@@ -1379,6 +1405,7 @@ def logged_in_platform_admin_client(
|
||||
service_one,
|
||||
mock_login,
|
||||
):
|
||||
mock_get_user(mocker, user=platform_admin_user)
|
||||
client.login(platform_admin_user, mocker, service_one)
|
||||
yield client
|
||||
|
||||
|
||||
Reference in New Issue
Block a user