@@ -162,11 +162,87 @@ def test_remote_repository_invalid_type(self):
162
162
self .assertIn ("remote_repository" , form .errors )
163
163
164
164
def test_remote_repository_invalid_id (self ):
165
- self .step_data ["basics" ]["remote_repository" ] = 9
166
- resp = self .post_step ("basics" )
167
- self .assertEqual (resp .status_code , 200 )
168
- form = resp .context_data ["form" ]
169
- self .assertIn ("remote_repository" , form .errors )
165
+ remote_repository_admin_public = get (
166
+ RemoteRepository ,
167
+ private = False ,
168
+ )
169
+ get (
170
+ RemoteRepositoryRelation ,
171
+ user = self .user ,
172
+ remote_repository = remote_repository_admin_public ,
173
+ admin = True ,
174
+ )
175
+
176
+ remote_repository_admin_private = get (
177
+ RemoteRepository ,
178
+ private = True ,
179
+ )
180
+ get (
181
+ RemoteRepositoryRelation ,
182
+ user = self .user ,
183
+ remote_repository = remote_repository_admin_private ,
184
+ admin = True ,
185
+ )
186
+
187
+ remote_repository_not_admin_public = get (
188
+ RemoteRepository ,
189
+ private = False ,
190
+ )
191
+ get (
192
+ RemoteRepositoryRelation ,
193
+ user = self .user ,
194
+ remote_repository = remote_repository_not_admin_public ,
195
+ admin = False ,
196
+ )
197
+
198
+ remote_repository_not_admin_private = get (
199
+ RemoteRepository ,
200
+ private = True ,
201
+ )
202
+ get (
203
+ RemoteRepositoryRelation ,
204
+ user = self .user ,
205
+ remote_repository = remote_repository_not_admin_private ,
206
+ admin = False ,
207
+ )
208
+
209
+ other_user = get (User )
210
+ remote_repository_other_user = get (
211
+ RemoteRepository ,
212
+ private = False ,
213
+ )
214
+ get (
215
+ RemoteRepositoryRelation ,
216
+ user = other_user ,
217
+ remote_repository = remote_repository_other_user ,
218
+ admin = True ,
219
+ )
220
+
221
+ invalid_remote_repos_pk = [
222
+ remote_repository_not_admin_private .pk ,
223
+ remote_repository_other_user .pk ,
224
+ # Doesn't exist
225
+ 99 ,
226
+ ]
227
+ valid_remote_repos_pk = [
228
+ remote_repository_admin_private .pk ,
229
+ remote_repository_admin_public .pk ,
230
+ remote_repository_not_admin_public .pk ,
231
+ ]
232
+
233
+ for remote_repo_pk in invalid_remote_repos_pk :
234
+ self .step_data ["basics" ]["remote_repository" ] = remote_repo_pk
235
+ resp = self .post_step ("basics" )
236
+ self .assertEqual (resp .status_code , 200 )
237
+ form = resp .context_data ["form" ]
238
+ self .assertIn ("remote_repository" , form .errors )
239
+
240
+ for remote_repo_pk in valid_remote_repos_pk :
241
+ self .step_data ["basics" ]["remote_repository" ] = remote_repo_pk
242
+ resp = self .post_step ("basics" )
243
+ self .assertEqual (resp .status_code , 200 )
244
+ form = resp .context_data ["form" ]
245
+ self .assertNotIn ("remote_repository" , form .errors )
170
246
171
247
def test_remote_repository_is_not_added_for_wrong_user (self ):
172
248
user = get (User )
0 commit comments