@@ -373,21 +373,32 @@ def test_change_reviewer_settings(self):
373373 "action" : "change_settings" ,
374374 "min_interval" : "7" ,
375375 "filter_re" : "test-[regexp]" ,
376- "skip_next" : "2" ,
377376 "remind_days_before_deadline" : "6"
378377 })
379378 self .assertEqual (r .status_code , 302 )
380379 settings = ReviewerSettings .objects .get (person = reviewer , team = review_req .team )
381380 self .assertEqual (settings .min_interval , 7 )
382381 self .assertEqual (settings .filter_re , "test-[regexp]" )
383- self .assertEqual (settings .skip_next , 2 )
382+ self .assertEqual (settings .skip_next , 0 )
384383 self .assertEqual (settings .remind_days_before_deadline , 6 )
385384 self .assertEqual (len (outbox ), 1 )
386385 self .assertTrue ("reviewer availability" in outbox [0 ]["subject" ].lower ())
387386 msg_content = outbox [0 ].get_payload (decode = True ).decode ("utf-8" ).lower ()
388387 self .assertTrue ("frequency changed" , msg_content )
389388 self .assertTrue ("skip next" , msg_content )
390389
390+ # Normal reviewer should not be able to change skip_next
391+ r = self .client .post (url , {
392+ "action" : "change_settings" ,
393+ "min_interval" : "7" ,
394+ "filter_re" : "test-[regexp]" ,
395+ "remind_days_before_deadline" : "6" ,
396+ "skip_next" : "2" ,
397+ })
398+ self .assertEqual (r .status_code , 302 )
399+ settings = ReviewerSettings .objects .get (person = reviewer , team = review_req .team )
400+ self .assertEqual (settings .skip_next , 0 )
401+
391402 # add unavailable period
392403 start_date = datetime .date .today () + datetime .timedelta (days = 10 )
393404 empty_outbox ()
@@ -435,6 +446,22 @@ def test_change_reviewer_settings(self):
435446 self .assertTrue (start_date .isoformat (), msg_content )
436447 self .assertTrue (end_date .isoformat (), msg_content )
437448
449+ # secretaries and the secretariat should be able to change skip_next
450+ for username in ["secretary" ,"reviewsecretary" ]:
451+ skip_next_val = {'secretary' :'3' ,'reviewsecretary' :'4' }[username ]
452+ self .client .login (username = username ,password = username + "+password" )
453+ r = self .client .post (url , {
454+ "action" : "change_settings" ,
455+ "min_interval" : "7" ,
456+ "filter_re" : "test-[regexp]" ,
457+ "remind_days_before_deadline" : "6" ,
458+ "skip_next" : skip_next_val ,
459+ })
460+ self .assertEqual (r .status_code , 302 )
461+ settings = ReviewerSettings .objects .get (person = reviewer , team = review_req .team )
462+ self .assertEqual (settings .skip_next , int (skip_next_val ))
463+
464+
438465 def test_change_review_secretary_settings (self ):
439466 doc = make_test_data ()
440467
0 commit comments