@@ -115,7 +115,10 @@ def test_api_documents_ask_for_access_create_authenticated_non_root_document():
115115 assert response .status_code == 404
116116
117117
118- def test_api_documents_ask_for_access_create_authenticated_specific_role ():
118+ @pytest .mark .parametrize (
119+ "role" , [role for role in RoleChoices if role != RoleChoices .OWNER ]
120+ )
121+ def test_api_documents_ask_for_access_create_authenticated_specific_role (role ):
119122 """
120123 Authenticated users should be able to create a document ask for access with a specific role.
121124 """
@@ -127,17 +130,35 @@ def test_api_documents_ask_for_access_create_authenticated_specific_role():
127130
128131 response = client .post (
129132 f"/api/v1.0/documents/{ document .id } /ask-for-access/" ,
130- data = {"role" : RoleChoices . EDITOR },
133+ data = {"role" : role },
131134 )
132135 assert response .status_code == 201
133136
134137 assert DocumentAskForAccess .objects .filter (
135138 document = document ,
136139 user = user ,
137- role = RoleChoices . EDITOR ,
140+ role = role ,
138141 ).exists ()
139142
140143
144+ def test_api_documents_ask_for_access_create_authenticated_owner_role ():
145+ """
146+ Authenticated users should not be able to create a document ask for access with the owner role.
147+ """
148+ document = DocumentFactory ()
149+ user = UserFactory ()
150+
151+ client = APIClient ()
152+ client .force_login (user )
153+
154+ response = client .post (
155+ f"/api/v1.0/documents/{ document .id } /ask-for-access/" ,
156+ data = {"role" : RoleChoices .OWNER },
157+ )
158+ assert response .status_code == 400
159+ assert response .json () == {"role" : ['"owner" is not a valid choice.' ]}
160+
161+
141162def test_api_documents_ask_for_access_create_authenticated_already_has_access ():
142163 """Authenticated users with existing access can ask for access with a different role."""
143164 user = UserFactory ()
0 commit comments