@@ -68,6 +68,8 @@ def setUp(self):
6868 self .private_nominate_url = reverse ('nomcom_private_nominate' , kwargs = {'year' : self .year })
6969 self .add_questionnaire_url = reverse ('nomcom_private_questionnaire' , kwargs = {'year' : self .year })
7070 self .private_feedback_url = reverse ('nomcom_private_feedback' , kwargs = {'year' : self .year })
71+ self .positions_url = reverse ("nomcom_list_positions" , kwargs = {'year' : self .year })
72+ self .edit_position_url = reverse ("nomcom_add_position" , kwargs = {'year' : self .year })
7173
7274 # public urls
7375 self .index_url = reverse ('nomcom_year_index' , kwargs = {'year' : self .year })
@@ -104,6 +106,55 @@ def test_private_index_view(self):
104106 self .access_member_url (self .private_index_url )
105107 self .client .logout ()
106108
109+ def create_nominees_for_states (self , base_state ):
110+ cnominee = Nominee .objects .get (email__person__user__username = COMMUNITY_USER )
111+ position = Position .objects .get (name = 'APP' )
112+ NomineePosition .objects .create (position = position ,
113+ nominee = cnominee ,
114+ state = NomineePositionStateName .objects .get (slug = base_state ))
115+ position = Position .objects .get (name = 'INT' )
116+ NomineePosition .objects .create (position = position ,
117+ nominee = cnominee ,
118+ state = NomineePositionStateName .objects .get (slug = base_state ))
119+ position = Position .objects .get (name = 'OAM' )
120+ NomineePosition .objects .create (position = position ,
121+ nominee = cnominee ,
122+ state = NomineePositionStateName .objects .get (slug = base_state ))
123+
124+ def test_private_index_post_accept (self ):
125+ self .create_nominees_for_states ('pending' )
126+ login_testing_unauthorized (self , CHAIR_USER , self .private_index_url )
127+ test_data = {"action" : "set_as_accepted" ,
128+ "selected" : [1 ]}
129+ r = self .client .post (self .private_index_url , test_data )
130+ self .assertEqual (r .status_code , 200 )
131+ self .assertContains (r , "message" )
132+ self .assertEqual (NomineePosition .objects .filter (state = 'accepted' ).count (), 1 )
133+ self .client .logout ()
134+
135+ def test_private_index_post_decline (self ):
136+ self .create_nominees_for_states ('pending' )
137+ login_testing_unauthorized (self , CHAIR_USER , self .private_index_url )
138+ test_data = {"action" : "set_as_declined" ,
139+ "selected" : [1 ]}
140+ r = self .client .post (self .private_index_url , test_data )
141+ self .assertEqual (r .status_code , 200 )
142+ self .assertContains (r , "message" )
143+ self .assertEqual (NomineePosition .objects .filter (state = 'declined' ).count (), 1 )
144+ self .client .logout ()
145+
146+ def test_private_index_post_pending (self ):
147+ self .create_nominees_for_states ('declined' )
148+ login_testing_unauthorized (self , CHAIR_USER , self .private_index_url )
149+ test_data = {"action" : "set_as_pending" ,
150+ "selected" : [1 ]}
151+ r = self .client .post (self .private_index_url , test_data )
152+ self .assertEqual (r .status_code , 200 )
153+ self .assertContains (r , "message" )
154+ self .assertEqual (NomineePosition .objects .filter (state = 'pending' ).count (), 1 )
155+ self .client .logout ()
156+
157+
107158 def test_private_merge_view (self ):
108159 """Verify private merge view"""
109160
@@ -389,6 +440,19 @@ def test_edit_nomcom_view(self):
389440
390441 self .client .logout ()
391442
443+ def test_list_positions (self ):
444+ login_testing_unauthorized (self , CHAIR_USER , self .positions_url )
445+
446+ def test_list_positions_add (self ):
447+ nomcom = get_nomcom_by_year (self .year )
448+ count = nomcom .position_set .all ().count ()
449+ login_testing_unauthorized (self , CHAIR_USER , self .edit_position_url )
450+ test_data = {"action" : "add" , "name" : "testpos" , "description" : "test description" }
451+ r = self .client .post (self .edit_position_url , test_data )
452+ self .assertEqual (r .status_code , 302 )
453+ self .assertEqual (nomcom .position_set .all ().count (), count + 1 )
454+
455+
392456 def test_index_view (self ):
393457 """Verify home view"""
394458 self .check_url_status (self .index_url , 200 )
0 commit comments