Tests added for choose_template page.

Remove indifferent change to file.
This commit is contained in:
Nicholas Staples
2016-03-09 13:51:56 +00:00
parent d0f113b6bb
commit c5eaf97669
6 changed files with 142 additions and 92 deletions

View File

@@ -6,65 +6,73 @@ from app.main.views.index import index
from werkzeug.exceptions import Forbidden
def _test_permissions(app_, usr, permissions, will_succeed, or_=False):
with app_.test_request_context():
with app_.test_client() as client:
client.login(usr)
decorator = user_has_permissions(*permissions, or_=or_)
decorated_index = decorator(index)
if will_succeed:
response = decorated_index()
else:
try:
response = decorated_index()
pytest.fail("Failed to throw a forbidden exception")
except Forbidden:
pass
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
_test_permissions(
app_,
api_user_active,
['something'],
False)
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()
_test_permissions(
app_,
api_user_active,
['manage_users'],
True)
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()
_test_permissions(
app_,
api_user_active,
['something', 'manage_users'],
True,
or_=True)
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()
_test_permissions(
app_,
api_user_active,
['manage_templates', 'manage_users'],
True)
def test_exact_permissions(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', 'manage_templates', 'manage_settings')
decorated_index = decorator(index)
response = decorated_index()
_test_permissions(
app_,
api_user_active,
['manage_users', 'manage_templates', 'manage_settings'],
True)