mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-25 12:51:05 -05:00
Change permissions tests to support old API
User permissions were handled by a group of BooleanFields but introducing the new checkboxes changed this to just one field that stores its data in a list. It was mentioned in a comment that there could be a situation, when the instances roll, where clients are using the old fields but POSTing to a server running the new code. https://github.com/alphagov/notifications-admin/pull/3535#discussion_r460872903 This introduces tests for that situation.
This commit is contained in:
@@ -514,6 +514,22 @@ def test_should_not_show_page_for_non_team_member(
|
||||
{},
|
||||
set(),
|
||||
),
|
||||
( # should be able to handle permissions being sent as booleans, until changeover to a list is complete
|
||||
{
|
||||
'view_activity': 'y',
|
||||
'send_messages': 'y',
|
||||
'manage_templates': 'y',
|
||||
'manage_service': 'y',
|
||||
'manage_api_keys': 'y',
|
||||
},
|
||||
{
|
||||
'view_activity',
|
||||
'send_messages',
|
||||
'manage_templates',
|
||||
'manage_service',
|
||||
'manage_api_keys',
|
||||
}
|
||||
),
|
||||
])
|
||||
def test_edit_user_permissions(
|
||||
client_request,
|
||||
@@ -584,6 +600,20 @@ def test_edit_user_permissions(
|
||||
'view_activity',
|
||||
}
|
||||
),
|
||||
( # should be able to handle permissions being sent as booleans, until changeover to a list is complete
|
||||
{
|
||||
'send_messages': 'y',
|
||||
'manage_templates': 'y',
|
||||
'manage_service': 'y',
|
||||
'manage_api_keys': 'y',
|
||||
},
|
||||
{
|
||||
'view_activity',
|
||||
'send_messages',
|
||||
'manage_service',
|
||||
'manage_templates',
|
||||
}
|
||||
),
|
||||
])
|
||||
def test_edit_user_permissions_for_broadcast_service(
|
||||
client_request,
|
||||
@@ -828,9 +858,10 @@ def test_should_show_folder_permission_form_if_service_has_folder_permissions_en
|
||||
assert len(folder_checkboxes) == 3
|
||||
|
||||
|
||||
@pytest.mark.parametrize('email_address, gov_user', [
|
||||
('test@example.gov.uk', True),
|
||||
('test@example.com', False)
|
||||
@pytest.mark.parametrize('email_address, gov_user, old_permissions', [
|
||||
('test@example.gov.uk', True, False),
|
||||
('test@example.com', False, False),
|
||||
('test@example.gov.uk', True, True)
|
||||
])
|
||||
def test_invite_user(
|
||||
client_request,
|
||||
@@ -839,6 +870,7 @@ def test_invite_user(
|
||||
sample_invite,
|
||||
email_address,
|
||||
gov_user,
|
||||
old_permissions,
|
||||
mock_get_template_folders,
|
||||
mock_get_organisations,
|
||||
):
|
||||
@@ -848,19 +880,25 @@ def test_invite_user(
|
||||
mocker.patch('app.models.user.InvitedUsers.client_method', return_value=[sample_invite])
|
||||
mocker.patch('app.models.user.Users.client_method', return_value=[active_user_with_permissions])
|
||||
mocker.patch('app.invite_api_client.create_invite', return_value=sample_invite)
|
||||
data = {'email_address': email_address}
|
||||
if old_permissions:
|
||||
data['view_activity'] = 'y'
|
||||
data['send_messages'] = 'y'
|
||||
data['manage_templates'] = 'y'
|
||||
data['manage_service'] = 'y'
|
||||
data['manage_api_keys'] = 'y'
|
||||
else:
|
||||
data['permissions_field'] = [
|
||||
'view_activity',
|
||||
'send_messages',
|
||||
'manage_templates',
|
||||
'manage_service',
|
||||
'manage_api_keys',
|
||||
]
|
||||
page = client_request.post(
|
||||
'main.invite_user',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_data={
|
||||
'email_address': email_address,
|
||||
'permissions_field': [
|
||||
'view_activity',
|
||||
'send_messages',
|
||||
'manage_templates',
|
||||
'manage_service',
|
||||
'manage_api_keys',
|
||||
]
|
||||
},
|
||||
_data=data,
|
||||
_follow_redirects=True,
|
||||
)
|
||||
assert page.h1.string.strip() == 'Team members'
|
||||
@@ -965,6 +1003,19 @@ def test_invite_user_with_email_auth_service(
|
||||
'view_activity',
|
||||
},
|
||||
),
|
||||
( # should be able to handle permissions being sent as booleans, until changeover to a list is complete
|
||||
{
|
||||
'send_messages': 'y',
|
||||
'manage_templates': 'y',
|
||||
'manage_service': 'y',
|
||||
},
|
||||
{
|
||||
'view_activity',
|
||||
'send_messages',
|
||||
'manage_templates',
|
||||
'manage_service',
|
||||
},
|
||||
)
|
||||
))
|
||||
def test_invite_user_to_broadcast_service(
|
||||
client_request,
|
||||
|
||||
Reference in New Issue
Block a user