11import typing
22
33import pytest
4+ from django .conf import settings
45from pytest_lazyfixture import lazy_fixture # type: ignore[import-untyped]
56
67from environments .models import Environment
@@ -142,14 +143,16 @@ def test_is_user_environment_admin__short_circuits_on_direct_permission(
142143 environment_admin_via_user_permission : UserEnvironmentPermission ,
143144 django_assert_num_queries : typing .Any ,
144145) -> None :
145- # When/Then - should take only 6 queries:
146+ # When/Then - should take only 6 queries (7 if RBAC installed) :
146147 # 1. Check if user is org admin (is_user_organisation_admin)
147148 # 2. Check organisation membership for project (_is_user_object_admin)
148149 # 3. Check direct user permission on project (not found)
149150 # 4. Check group permission on project (not found)
150- # 5. Check organisation membership for environment (_is_user_object_admin)
151- # 6. Check direct user permission on environment (short-circuits here)
152- with django_assert_num_queries (6 ):
151+ # 5. Check RBAC role permission on project (not found, only if RBAC installed)
152+ # 6. Check organisation membership for environment (_is_user_object_admin)
153+ # 7. Check direct user permission on environment (short-circuits here)
154+ expected_queries = 7 if settings .IS_RBAC_INSTALLED else 6
155+ with django_assert_num_queries (expected_queries ):
153156 assert is_user_environment_admin (staff_user , environment ) is True
154157
155158
@@ -159,13 +162,15 @@ def test_is_user_environment_admin__short_circuits_on_group_permission(
159162 environment_admin_via_user_permission_group : UserPermissionGroupEnvironmentPermission ,
160163 django_assert_num_queries : typing .Any ,
161164) -> None :
162- # When/Then - should take only 7 queries:
165+ # When/Then - should take only 7 queries (8 if RBAC installed) :
163166 # 1. Check if user is org admin (is_user_organisation_admin)
164167 # 2. Check organisation membership for project (_is_user_object_admin)
165168 # 3. Check direct user permission on project (not found)
166169 # 4. Check group permission on project (not found)
167- # 5. Check organisation membership for environment (_is_user_object_admin)
168- # 6. Check direct user permission on environment (not found)
169- # 7. Check group permission on environment (short-circuits here)
170- with django_assert_num_queries (7 ):
170+ # 5. Check RBAC role permission on project (not found, only if RBAC installed)
171+ # 6. Check organisation membership for environment (_is_user_object_admin)
172+ # 7. Check direct user permission on environment (not found)
173+ # 8. Check group permission on environment (short-circuits here)
174+ expected_queries = 8 if settings .IS_RBAC_INSTALLED else 7
175+ with django_assert_num_queries (expected_queries ):
171176 assert is_user_environment_admin (staff_user , environment ) is True
0 commit comments