@@ -1897,6 +1897,29 @@ def test_interim_request_multi_day_non_consecutive(self):
18971897 r = self .client .post (urlreverse ("ietf.meeting.views.interim_request" ),data )
18981898 self .assertContains (r , 'days must be consecutive' )
18991899
1900+ def test_interim_request_multi_day_cancel (self ):
1901+ """All sessions of a multi-day interim request should be canceled"""
1902+ length_before = len (outbox )
1903+ date = datetime .date .today ()+ datetime .timedelta (days = 15 )
1904+
1905+ # Set up an interim request with several sessions
1906+ num_sessions = 3
1907+ meeting = MeetingFactory (type_id = 'interim' , date = date )
1908+ for _ in range (num_sessions ):
1909+ SessionFactory (meeting = meeting )
1910+
1911+ # Cancel the interim request
1912+ url = urlreverse ('ietf.meeting.views.interim_request_cancel' , kwargs = {'number' : meeting .number })
1913+ self .client .login (username = "secretary" , password = "secretary+password" )
1914+ r = self .client .post (url )
1915+
1916+ # Verify results
1917+ self .assertRedirects (r , urlreverse ('ietf.meeting.views.upcoming' ))
1918+ for session in add_event_info_to_session_qs (meeting .session_set .all ()):
1919+ self .assertEqual (session .current_status , 'canceled' )
1920+ self .assertEqual (len (outbox ), length_before + 1 )
1921+ self .assertIn ('Interim Meeting Cancelled' , outbox [- 1 ]['Subject' ])
1922+
19001923 def test_interim_request_series (self ):
19011924 make_meeting_test_data ()
19021925 meeting_count_before = Meeting .objects .filter (type = 'interim' ).count ()
0 commit comments