From cc897d624d091c679ef304df9ff35f1093ae1ac0 Mon Sep 17 00:00:00 2001 From: Matthew Lemon Date: Sun, 31 May 2020 17:27:13 +0100 Subject: created a group fixture with perms This fixture is a group with all permissions relating to ctrack system so far. --- ctrack/conftest.py | 37 ++++++++++++++++++++++++++++++++++ ctrack/users/tests/test_credentials.py | 5 +++++ 2 files changed, 42 insertions(+) diff --git a/ctrack/conftest.py b/ctrack/conftest.py index 58fabd0..c115b4e 100644 --- a/ctrack/conftest.py +++ b/ctrack/conftest.py @@ -1,6 +1,8 @@ import os import pytest +from django.contrib.auth.models import Group, Permission +from django.db.models import Q from django.test import RequestFactory from selenium import webdriver from selenium.webdriver.firefox.options import Options @@ -28,6 +30,41 @@ def media_storage(settings, tmpdir): settings.MEDIA_ROOT = tmpdir.strpath +@pytest.fixture +def cct_user_group() -> Group: + """ + TODO: An inspector will not require this many permissions! Reduce. + """ + group = Group.objects.create(name="cct_user") + ctrack_permissions = Permission.objects.filter( + Q(codename__contains="address") + | Q(codename__contains="addresstype") + | Q(codename__contains="mode") + | Q(codename__contains="organisation") + | Q(codename__contains="role") + | Q(codename__contains="submode") + | Q(codename__contains="person") + | Q(codename__contains="applicablesystem") + | Q(codename__contains="caf") + | Q(codename__contains="documentfile") + | Q(codename__contains="filestore") + | Q(codename__contains="grading") + | Q(codename__contains="engagementtype") + | Q(codename__contains="engagementevent") + | Q(codename__contains="cafassessment") + | Q(codename__contains="cafobjective") + | Q(codename__contains="cafprinciple") + | Q(codename__contains="cafcontributingoutcome") + | Q(codename__contains="cafassessmentoutcomescore") + | Q(codename__contains="achievmentlevel") + | Q(codename__contains="igp") + | Q(codename__contains="stakeholder") + | Q(codename__contains="incidentreport") + ) + group.permissions.add(*ctrack_permissions) + return group + + @pytest.fixture def user() -> User: return UserFactory() diff --git a/ctrack/users/tests/test_credentials.py b/ctrack/users/tests/test_credentials.py index 496eeaf..759d8cb 100644 --- a/ctrack/users/tests/test_credentials.py +++ b/ctrack/users/tests/test_credentials.py @@ -32,6 +32,11 @@ def test_there_is_a_cct_user_group(db): # adding fixture here assert group in user.groups.all() +def test_user_fixture_has_access_to_all_ctrack_models(db, cct_user_group): + view_org_perm = Permission.objects.get(codename="view_organisation") + assert view_org_perm in cct_user_group.permissions.all() + + # def test_should_create_user(user_A: get_user_model()) -> None: # assert user_A.username == "A" -- cgit v1.2.3