@@ -2250,6 +2250,29 @@ def test_interim_request_multi_day_non_consecutive(self):
22502250 r = self .client .post (urlreverse ("ietf.meeting.views.interim_request" ),data )
22512251 self .assertContains (r , 'days must be consecutive' )
22522252
2253+ def test_interim_request_multi_day_cancel (self ):
2254+ """All sessions of a multi-day interim request should be canceled"""
2255+ length_before = len (outbox )
2256+ date = datetime .date .today ()+ datetime .timedelta (days = 15 )
2257+
2258+ # Set up an interim request with several sessions
2259+ num_sessions = 3
2260+ meeting = MeetingFactory (type_id = 'interim' , date = date )
2261+ for _ in range (num_sessions ):
2262+ SessionFactory (meeting = meeting )
2263+
2264+ # Cancel the interim request
2265+ url = urlreverse ('ietf.meeting.views.interim_request_cancel' , kwargs = {'number' : meeting .number })
2266+ self .client .login (username = "secretary" , password = "secretary+password" )
2267+ r = self .client .post (url )
2268+
2269+ # Verify results
2270+ self .assertRedirects (r , urlreverse ('ietf.meeting.views.upcoming' ))
2271+ for session in add_event_info_to_session_qs (meeting .session_set .all ()):
2272+ self .assertEqual (session .current_status , 'canceled' )
2273+ self .assertEqual (len (outbox ), length_before + 1 )
2274+ self .assertIn ('Interim Meeting Cancelled' , outbox [- 1 ]['Subject' ])
2275+
22532276 def test_interim_request_series (self ):
22542277 make_meeting_test_data ()
22552278 meeting_count_before = Meeting .objects .filter (type = 'interim' ).count ()
0 commit comments