1+ from django .test import RequestFactory
2+ from pytest_mock import MockerFixture
3+
4+ from environments .models import Environment
15from environments .permissions .models import UserEnvironmentPermission
26from environments .permissions .permissions import NestedEnvironmentPermissions
37from permissions .models import ENVIRONMENT_PERMISSION_TYPE , PermissionModel
8+ from users .models import FFAdminUser
49
510
611def test_nested_environment_permissions_has_permission_false_if_no_env_key ( # type: ignore[no-untyped-def]
@@ -19,28 +24,27 @@ def test_nested_environment_permissions_has_permission_false_if_no_env_key( # t
1924 assert result is False
2025
2126
22- def test_nested_environment_permissions_has_permission_true_if_action_in_map ( # type: ignore[no-untyped-def]
23- rf , mocker , db , environment , django_user_model
24- ):
27+ def test_nested_environment_permissions_has_permission_true_if_action_in_map (
28+ rf : RequestFactory ,
29+ mocker : MockerFixture ,
30+ environment : Environment ,
31+ staff_user : FFAdminUser ,
32+ user_environment_permission : UserEnvironmentPermission ,
33+ ) -> None :
2534 # Given
2635 permission_key = "SOME_PERMISSION"
2736 permission = PermissionModel .objects .create (
2837 key = permission_key , type = ENVIRONMENT_PERMISSION_TYPE , description = "foobar"
2938 )
39+ user_environment_permission .permissions .add (permission )
3040
3141 action = "retrieve"
3242 permissions = NestedEnvironmentPermissions (
3343 action_permission_map = {action : permission .key }
3444 )
3545
36- user = django_user_model .objects .create (email = "test@example.com" )
37- user_env_permission = UserEnvironmentPermission .objects .create (
38- user = user , environment = environment
39- )
40- user_env_permission .permissions .add (permission )
41-
4246 request = rf .get ("/" )
43- request .user = user
47+ request .user = staff_user
4448 view = mocker .MagicMock (
4549 action = action , kwargs = {"environment_api_key" : environment .api_key }
4650 )
@@ -52,19 +56,21 @@ def test_nested_environment_permissions_has_permission_true_if_action_in_map( #
5256 assert has_permission is True
5357
5458
55- def test_nested_environment_permissions_has_permission_if_create_and_user_is_admin ( # type: ignore[no-untyped-def]
56- rf , mocker , db , environment , django_user_model
57- ):
59+ def test_nested_environment_permissions_has_permission_if_create_and_user_is_admin (
60+ rf : RequestFactory ,
61+ mocker : MockerFixture ,
62+ environment : Environment ,
63+ staff_user : FFAdminUser ,
64+ user_environment_permission : UserEnvironmentPermission ,
65+ ) -> None :
5866 # Given
5967 permissions = NestedEnvironmentPermissions ()
6068
61- user = django_user_model .objects .create (email = "test@example.com" )
62- UserEnvironmentPermission .objects .create (
63- user = user , environment = environment , admin = True
64- )
69+ user_environment_permission .admin = True
70+ user_environment_permission .save ()
6571
6672 request = rf .get ("/" )
67- request .user = user
73+ request .user = staff_user
6874 view = mocker .MagicMock (
6975 action = "create" , kwargs = {"environment_api_key" : environment .api_key }
7076 )
@@ -76,9 +82,13 @@ def test_nested_environment_permissions_has_permission_if_create_and_user_is_adm
7682 assert has_permission is True
7783
7884
79- def test_nested_environment_permissions_has_object_permission_true_if_action_in_map ( # type: ignore[no-untyped-def]
80- rf , mocker , django_user_model , environment
81- ):
85+ def test_nested_environment_permissions_has_object_permission_true_if_action_in_map (
86+ rf : RequestFactory ,
87+ mocker : MockerFixture ,
88+ environment : Environment ,
89+ staff_user : FFAdminUser ,
90+ user_environment_permission : UserEnvironmentPermission ,
91+ ) -> None :
8292 # Given
8393 permission_key = "SOME_PERMISSION"
8494 permission = PermissionModel .objects .create (
@@ -90,14 +100,10 @@ def test_nested_environment_permissions_has_object_permission_true_if_action_in_
90100 action_permission_map = {action : permission .key }
91101 )
92102
93- user = django_user_model .objects .create (email = "test@example.com" )
94- user_env_permission = UserEnvironmentPermission .objects .create (
95- user = user , environment = environment
96- )
97- user_env_permission .permissions .add (permission )
103+ user_environment_permission .permissions .add (permission )
98104
99105 request = rf .get ("/" )
100- request .user = user
106+ request .user = staff_user
101107 view = mocker .MagicMock (
102108 action = action , kwargs = {"environment_api_key" : environment .api_key }
103109 )
@@ -111,19 +117,21 @@ def test_nested_environment_permissions_has_object_permission_true_if_action_in_
111117 assert has_object_permission is True
112118
113119
114- def test_nested_environment_permissions_has_object_permission_true_if_user_is_admin ( # type: ignore[no-untyped-def]
115- rf , mocker , django_user_model , environment
116- ):
120+ def test_nested_environment_permissions_has_object_permission_true_if_user_is_admin (
121+ rf : RequestFactory ,
122+ mocker : MockerFixture ,
123+ environment : Environment ,
124+ staff_user : FFAdminUser ,
125+ user_environment_permission : UserEnvironmentPermission ,
126+ ) -> None :
117127 # Given
118128 permissions = NestedEnvironmentPermissions ()
119129
120- user = django_user_model .objects .create (email = "test@example.com" )
121- UserEnvironmentPermission .objects .create (
122- user = user , environment = environment , admin = True
123- )
130+ user_environment_permission .admin = True
131+ user_environment_permission .save ()
124132
125133 request = rf .get ("/" )
126- request .user = user
134+ request .user = staff_user
127135 view = mocker .MagicMock (
128136 action = "action" , kwargs = {"environment_api_key" : environment .api_key }
129137 )
0 commit comments