@@ -243,10 +243,16 @@ def test_no_one_can_see_detailed_result_when_visualization_is_false(self):
243243 resp = self .client .get (url )
244244 assert resp .status_code == 404
245245
246- def test_who_can_see_detailed_result_when_visualization_is_true (self ):
246+ def test_who_can_see_detailed_result_when_visualization_is_true_and_competition_is_private (self ):
247247 self .comp .enable_detailed_results = True
248+ self .comp .published = False
248249 self .comp .save ()
249- url = reverse ('submission-get-detail-result' , args = (self .existing_submission .pk ,))
250+
251+ url = reverse ("submission-get-detail-result" , args = (self .existing_submission .pk ,))
252+
253+ # Anonymous user cannot see submission detail result
254+ resp = self .client .get (url )
255+ assert resp .status_code == 403
250256
251257 # Competition creator can see detail result
252258 self .client .force_login (self .creator )
@@ -263,17 +269,17 @@ def test_who_can_see_detailed_result_when_visualization_is_true(self):
263269 resp = self .client .get (url )
264270 assert resp .status_code == 200
265271
266- # approved user can see submission detail result
272+ # Approved user can see submission detail result
267273 self .client .force_login (self .participant )
268274 resp = self .client .get (url )
269275 assert resp .status_code == 200
270276
271- # pending user cannot see submission detail result
277+ # Pending user cannot see submission detail result
272278 self .client .force_login (self .pending_participant )
273279 resp = self .client .get (url )
274280 assert resp .status_code == 403
275281
276- # denied user cannot see submission detail result
282+ # Denied user cannot see submission detail result
277283 self .client .force_login (self .denied_participant )
278284 resp = self .client .get (url )
279285 assert resp .status_code == 403
@@ -283,6 +289,45 @@ def test_who_can_see_detailed_result_when_visualization_is_true(self):
283289 resp = self .client .get (url )
284290 assert resp .status_code == 403
285291
292+ def test_who_can_see_detailed_result_when_visualization_is_true_and_competition_is_public (self ):
293+ self .comp .enable_detailed_results = True
294+ self .comp .published = True
295+ self .comp .save ()
296+
297+ url = reverse ("submission-get-detail-result" , args = (self .existing_submission .pk ,))
298+
299+ # Detailed results are publicly available
300+ resp = self .client .get (url )
301+ assert resp .status_code == 200
302+
303+ self .client .force_login (self .creator )
304+ resp = self .client .get (url )
305+ assert resp .status_code == 200
306+
307+ self .client .force_login (self .collaborator )
308+ resp = self .client .get (url )
309+ assert resp .status_code == 200
310+
311+ self .client .force_login (self .superuser )
312+ resp = self .client .get (url )
313+ assert resp .status_code == 200
314+
315+ self .client .force_login (self .participant )
316+ resp = self .client .get (url )
317+ assert resp .status_code == 200
318+
319+ self .client .force_login (self .pending_participant )
320+ resp = self .client .get (url )
321+ assert resp .status_code == 200
322+
323+ self .client .force_login (self .denied_participant )
324+ resp = self .client .get (url )
325+ assert resp .status_code == 200
326+
327+ self .client .force_login (self .other_user )
328+ resp = self .client .get (url )
329+ assert resp .status_code == 200
330+
286331
287332class SubmissionUpdateTest (APITestCase ):
288333 def setUp (self ):
0 commit comments