mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 14:09:20 -04:00
Remove unused method
Added more tests
This commit is contained in:
@@ -146,6 +146,10 @@ def validate_route_permission(mocker,
|
||||
mocker.patch('app.user_api_client.get_user', return_value=usr)
|
||||
mocker.patch('app.user_api_client.get_user_by_email', return_value=usr)
|
||||
mocker.patch('app.service_api_client.get_service', return_value={'data': service})
|
||||
mocker.patch('app.user_api_client.get_users_for_service', return_value=[usr])
|
||||
mocker.patch('app.invite_api_client.get_invites_for_service', return_value=[])
|
||||
mocker.patch('app.invite_api_client.cancel_invited_user')
|
||||
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import pytest
|
||||
from flask import url_for
|
||||
|
||||
from app.utils import user_has_permissions
|
||||
from app.main.views.index import index
|
||||
from werkzeug.exceptions import Forbidden
|
||||
|
||||
|
||||
def _test_permissions(app_, usr, permissions, will_succeed, or_=False):
|
||||
def _test_permissions(app_, usr, permissions, will_succeed, or_=False, admin_override=False):
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
client.login(usr)
|
||||
decorator = user_has_permissions(*permissions, or_=or_)
|
||||
decorator = user_has_permissions(*permissions, or_=or_, admin_override=admin_override)
|
||||
decorated_index = decorator(index)
|
||||
if will_succeed:
|
||||
response = decorated_index()
|
||||
@@ -76,3 +75,26 @@ def test_exact_permissions(app_,
|
||||
api_user_active,
|
||||
['manage_users', 'manage_templates', 'manage_settings'],
|
||||
True)
|
||||
|
||||
|
||||
def test_platform_admin_user_can_access_page(app_,
|
||||
platform_admin_user,
|
||||
mock_login,
|
||||
mock_get_platform_admin_user_with_permissions):
|
||||
_test_permissions(
|
||||
app_,
|
||||
platform_admin_user,
|
||||
[],
|
||||
True,
|
||||
admin_override=True)
|
||||
|
||||
|
||||
def test_platform_admin_user_can_not_access_page(app_,
|
||||
platform_admin_user,
|
||||
mock_login,
|
||||
mock_get_platform_admin_user_with_permissions):
|
||||
_test_permissions(
|
||||
app_,
|
||||
platform_admin_user,
|
||||
[],
|
||||
will_succeed=False)
|
||||
|
||||
@@ -3,6 +3,7 @@ from flask import url_for
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from app.notify_client.models import InvitedUser
|
||||
from tests import validate_route_permission
|
||||
|
||||
|
||||
def test_should_show_overview_page(
|
||||
@@ -258,10 +259,8 @@ def test_user_cant_invite_themselves(
|
||||
mock_get_invites_for_service,
|
||||
mock_has_permissions
|
||||
):
|
||||
from_user = api_user_active.id
|
||||
service_id = service_one['id']
|
||||
email_address = api_user_active.email_address
|
||||
permissions = 'send_messages,manage_service,manage_api_keys'
|
||||
|
||||
with app_.test_request_context():
|
||||
with app_.test_client() as client:
|
||||
@@ -280,3 +279,38 @@ def test_user_cant_invite_themselves(
|
||||
assert page.h1.string.strip() == 'Invite a team member'
|
||||
form_error = page.find('span', class_='error-message').string.strip()
|
||||
assert form_error == "You can't send an invitation to yourself"
|
||||
|
||||
|
||||
def test_platform_admin_user_can_manage_user(mocker, app_, platform_admin_user, service_one, api_user_active):
|
||||
routes = [
|
||||
'main.manage_users',
|
||||
'main.invite_user'
|
||||
]
|
||||
with app_.test_request_context():
|
||||
# for route in routes:
|
||||
# validate_route_permission(mocker,
|
||||
# app_,
|
||||
# "GET",
|
||||
# 200,
|
||||
# url_for(route, service_id=service_one['id']),
|
||||
# [],
|
||||
# platform_admin_user,
|
||||
# service_one)
|
||||
#
|
||||
# validate_route_permission(mocker,
|
||||
# app_,
|
||||
# "GET",
|
||||
# 200,
|
||||
# url_for('main.edit_user_permissions', service_id=service_one['id'], user_id=platform_admin_user.id),
|
||||
# [],
|
||||
# platform_admin_user,
|
||||
# service_one)
|
||||
validate_route_permission(mocker,
|
||||
app_,
|
||||
"GET",
|
||||
200,
|
||||
url_for('main.cancel_invited_user', service_id=service_one['id'],
|
||||
invited_user_id=api_user_active.id),
|
||||
[],
|
||||
platform_admin_user,
|
||||
service_one)
|
||||
|
||||
@@ -422,3 +422,26 @@ def test_route_invalid_permissions(mocker, app_, api_user_active, service_one):
|
||||
['blah'],
|
||||
api_user_active,
|
||||
service_one)
|
||||
|
||||
|
||||
def test_route_for_platform_admin(mocker, app_, platform_admin_user, service_one):
|
||||
routes = [
|
||||
'main.service_settings',
|
||||
'main.service_name_change',
|
||||
'main.service_name_change_confirm',
|
||||
'main.service_request_to_go_live',
|
||||
'main.service_status_change',
|
||||
'main.service_status_change_confirm',
|
||||
'main.service_delete',
|
||||
'main.service_delete_confirm'
|
||||
]
|
||||
with app_.test_request_context():
|
||||
for route in routes:
|
||||
validate_route_permission(mocker,
|
||||
app_,
|
||||
"GET",
|
||||
200,
|
||||
url_for(route, service_id=service_one['id']),
|
||||
[],
|
||||
platform_admin_user,
|
||||
service_one)
|
||||
|
||||
@@ -380,6 +380,14 @@ def mock_get_user_with_permissions(mocker, api_user_active):
|
||||
'app.user_api_client.get_user', side_effect=_get_user)
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_platform_admin_user_with_permissions(mocker, platform_admin_user):
|
||||
def _get_user(id):
|
||||
return platform_admin_user
|
||||
return mocker.patch(
|
||||
'app.user_api_client.get_user', side_effect=_get_user)
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_dont_get_user_by_email(mocker):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user