Use fixture to create user dict

This removes a bunch of dummy data which isn’t relevant to the tests
being run.
This commit is contained in:
Chris Hill-Scott
2022-06-06 11:40:10 +01:00
parent e6e2770a04
commit f79c3f27e3

View File

@@ -4,55 +4,44 @@ from werkzeug.exceptions import Forbidden
from app.main.views.index import index from app.main.views.index import index
from app.utils.user import user_has_permissions from app.utils.user import user_has_permissions
from tests.conftest import create_platform_admin_user from tests.conftest import create_platform_admin_user, create_user, sample_uuid
_user_with_permissions = create_user(
def _user_with_permissions(): id=sample_uuid(),
user_data = {'id': 999, permissions={'foo': ['manage_users', 'manage_templates', 'manage_settings']},
'name': 'Test User', services=['foo', 'bar'],
'password': 'somepassword', )
'email_address': 'test@user.gov.uk',
'mobile_number': '+4412341234',
'state': 'active',
'failed_login_count': 0,
'permissions': {'foo': ['manage_users', 'manage_templates', 'manage_settings']},
'platform_admin': False,
'organisations': ['org_1', 'org_2'],
'services': ['foo', 'bar'],
'current_session_id': None,
}
return user_data
@pytest.mark.parametrize('user, permissions, kwargs', ( @pytest.mark.parametrize('user, permissions, kwargs', (
pytest.param( pytest.param(
_user_with_permissions(), _user_with_permissions,
['send_messages'], ['send_messages'],
{}, {},
marks=pytest.mark.xfail(raises=Forbidden), marks=pytest.mark.xfail(raises=Forbidden),
), ),
( (
_user_with_permissions(), _user_with_permissions,
['manage_service'], ['manage_service'],
{}, {},
), ),
( (
_user_with_permissions(), _user_with_permissions,
['send_messages', 'manage_service'], ['send_messages', 'manage_service'],
{}, {},
), ),
( (
_user_with_permissions(), _user_with_permissions,
['manage_templates', 'manage_service'], ['manage_templates', 'manage_service'],
{}, {},
), ),
( (
_user_with_permissions(), _user_with_permissions,
['manage_service', 'manage_templates'], ['manage_service', 'manage_templates'],
{}, {},
), ),
( (
create_platform_admin_user(), _user_with_permissions,
[], [],
{}, {},
), ),
@@ -91,8 +80,10 @@ def test_no_user_returns_redirect_to_sign_in(
def test_user_has_permissions_for_organisation( def test_user_has_permissions_for_organisation(
client_request, client_request,
): ):
user = _user_with_permissions() user = create_user(
user['organisations'] = ['org_1', 'org_2'] id=sample_uuid(),
organisations=['org_1', 'org_2'],
)
client_request.login(user) client_request.login(user)
request.view_args = {'org_id': 'org_2'} request.view_args = {'org_id': 'org_2'}
@@ -139,8 +130,10 @@ def test_cant_use_decorator_without_view_args(
def test_user_doesnt_have_permissions_for_organisation( def test_user_doesnt_have_permissions_for_organisation(
client_request, client_request,
): ):
user = _user_with_permissions() user = create_user(
user['organisations'] = ['org_1', 'org_2'] id=sample_uuid(),
organisations=['org_1', 'org_2'],
)
client_request.login(user) client_request.login(user)
request.view_args = {'org_id': 'org_3'} request.view_args = {'org_id': 'org_3'}
@@ -156,8 +149,7 @@ def test_user_doesnt_have_permissions_for_organisation(
def test_user_with_no_permissions_to_service_goes_to_templates( def test_user_with_no_permissions_to_service_goes_to_templates(
client_request, client_request,
): ):
user = _user_with_permissions() client_request.login(_user_with_permissions)
client_request.login(user)
request.view_args = {'service_id': 'bar'} request.view_args = {'service_id': 'bar'}
@user_has_permissions() @user_has_permissions()