mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 19:03:30 -05:00
59 lines
2.3 KiB
Python
59 lines
2.3 KiB
Python
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_user_has_permissions_on_endpoint_fail(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user_with_permissions):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
decorator = user_has_permissions('something')
|
|
decorated_index = decorator(index)
|
|
try:
|
|
response = decorated_index()
|
|
pytest.fail("Failed to throw a forbidden exception")
|
|
except Forbidden:
|
|
pass
|
|
|
|
|
|
def test_user_has_permissions_success(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user_with_permissions):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
decorator = user_has_permissions('manage_users')
|
|
decorated_index = decorator(index)
|
|
response = decorated_index()
|
|
|
|
|
|
def test_user_has_permissions_or(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user_with_permissions):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
decorator = user_has_permissions('something', 'manage_users', or_=True)
|
|
decorated_index = decorator(index)
|
|
response = decorated_index()
|
|
|
|
|
|
def test_user_has_permissions_multiple(app_,
|
|
api_user_active,
|
|
mock_login,
|
|
mock_get_user_with_permissions):
|
|
with app_.test_request_context():
|
|
with app_.test_client() as client:
|
|
client.login(api_user_active)
|
|
decorator = user_has_permissions('manage_templates', 'manage_users')
|
|
decorated_index = decorator(index)
|
|
response = decorated_index()
|