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:
Leo Hemsted
2017-02-14 14:06:02 +00:00
parent 61cbdac09d
commit bbeb3595a8
6 changed files with 175 additions and 260 deletions

View File

@@ -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

View File

@@ -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')

View File

@@ -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'
)

View File

@@ -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')

View File

@@ -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

View File

@@ -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