Merge pull request #1163 from alphagov/unified-template-page

Merge email, text message and letter templates pages
This commit is contained in:
Chris Hill-Scott
2017-03-06 10:42:08 +00:00
committed by GitHub
15 changed files with 168 additions and 143 deletions

View File

@@ -324,11 +324,7 @@ def test_menu_send_messages(
assert url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='email') in page
assert url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='sms') in page
) in page
assert url_for('main.manage_users', service_id=service_one['id']) in page
assert url_for('main.service_settings', service_id=service_one['id']) not in page
@@ -358,11 +354,7 @@ def test_menu_manage_service(
assert url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='email') in page
assert url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='sms') in page
) in page
assert url_for('main.manage_users', service_id=service_one['id']) in page
assert url_for('main.service_settings', service_id=service_one['id']) in page
@@ -391,11 +383,7 @@ def test_menu_manage_api_keys(
assert url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='email') in page
assert url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='sms') in page
) in page
assert url_for('main.manage_users', service_id=service_one['id']) in page
assert url_for('main.service_settings', service_id=service_one['id']) not in page
@@ -421,8 +409,7 @@ def test_menu_all_services_for_platform_admin_user(
service_one,
[])
page = resp.get_data(as_text=True)
assert url_for('main.choose_template', service_id=service_one['id'], template_type='sms') in page
assert url_for('main.choose_template', service_id=service_one['id'], template_type='email') in page
assert url_for('main.choose_template', service_id=service_one['id']) in page
assert url_for('main.manage_users', service_id=service_one['id']) in page
assert url_for('main.service_settings', service_id=service_one['id']) in page
assert url_for('main.view_notifications', service_id=service_one['id'], message_type='email') in page

View File

@@ -1,11 +1,11 @@
import pytest
from bs4 import BeautifulSoup
from flask import url_for
from functools import partial
from tests import service_json
letters_urls = [
partial(url_for, 'main.choose_template', template_type='letter'),
partial(url_for, 'main.add_service_template', template_type='letter'),
]
@@ -49,3 +49,29 @@ def test_letters_lets_in_without_permission(
assert api_user_active.permissions == {}
assert response.status_code == 200
@pytest.mark.parametrize('can_send_letters, choices', [
(True, ['Email', 'Text message', 'Letter']),
(False, ['Email', 'Text message'])
])
def test_given_option_to_add_letters_if_allowed(
logged_in_client,
service_one,
mocker,
can_send_letters,
choices,
):
service_one['can_send_letters'] = can_send_letters
mocker.patch('app.service_api_client.get_service', return_value={"data": service_one})
response = logged_in_client.get(url_for('main.add_template_by_type', service_id=service_one['id']))
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
radios = page.select('input[type=radio]')
assert len(radios) == len(choices)
for index, choice in enumerate(choices):
assert radios[index].text.strip() == choice

View File

@@ -1,58 +0,0 @@
from flask import url_for
from bs4 import BeautifulSoup
from tests.conftest import mock_get_user
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.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,
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.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_edit_permissions(
client,
mocker,
active_user_view_permissions,
mock_get_users_by_service,
mock_get_invites_for_service,
service_one
):
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(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')
assert 'Letter templates' in page.find('nav', class_='navigation').text

View File

@@ -622,8 +622,8 @@ def test_route_permissions(
url_for(
route,
service_id=service_one['id'],
template_type='sms',
template_id=fake_uuid),
template_id=fake_uuid
),
['send_texts', 'send_emails', 'send_letters'],
api_user_active,
service_one)
@@ -686,7 +686,7 @@ def test_route_choose_template_manage_service_permissions(
url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='sms'),
),
['manage_users', 'manage_templates', 'manage_settings'],
api_user_active,
service_one)
@@ -1003,8 +1003,7 @@ def test_get_check_messages_back_url_returns_to_correct_select_template(client,
assert get_check_messages_back_url('1234', template_type) == url_for(
'main.choose_template',
service_id='1234',
template_type=template_type
service_id='1234'
)
@@ -1037,5 +1036,4 @@ def test_check_messages_back_from_help_handles_unexpected_templates(client, mock
assert get_check_messages_back_url('1234', 'sms') == url_for(
'main.choose_template',
service_id='1234',
template_type='sms'
)

View File

@@ -561,7 +561,7 @@ def test_route_permissions_for_choose_template(
url_for(
'main.choose_template',
service_id=service_one['id'],
template_type='sms'),
),
['view_activity'],
api_user_active,
service_one)