@@ -5237,6 +5237,45 @@ def strfdelta(self, tdelta, fmt):
52375237 d ["minutes" ], d ["seconds" ] = divmod (rem , 60 )
52385238 return fmt .format (** d )
52395239
5240+ def test_interim_request_edit_agenda_updates_doc (self ):
5241+ """Updating the agenda through the request edit form should update the doc correctly"""
5242+ make_interim_test_data ()
5243+ meeting = add_event_info_to_session_qs (Session .objects .filter (meeting__type = 'interim' , group__acronym = 'mars' )).filter (current_status = 'sched' ).first ().meeting
5244+ group = meeting .session_set .first ().group
5245+ url = urlreverse ('ietf.meeting.views.interim_request_edit' , kwargs = {'number' : meeting .number })
5246+ session = meeting .session_set .first ()
5247+ agenda_doc = session .agenda ()
5248+ rev_before = agenda_doc .rev
5249+ uploaded_filename_before = agenda_doc .uploaded_filename
5250+
5251+ self .client .login (username = 'secretary' , password = 'secretary+password' )
5252+ r = self .client .get (url )
5253+ form_initial = r .context ['form' ].initial
5254+ formset_initial = r .context ['formset' ].forms [0 ].initial
5255+ data = {
5256+ 'group' : group .pk ,
5257+ 'meeting_type' : 'single' ,
5258+ 'session_set-0-id' : session .id ,
5259+ 'session_set-0-date' : formset_initial ['date' ].strftime ('%Y-%m-%d' ),
5260+ 'session_set-0-time' : formset_initial ['time' ].strftime ('%H:%M' ),
5261+ 'session_set-0-requested_duration' : '00:30' ,
5262+ 'session_set-0-remote_instructions' : formset_initial ['remote_instructions' ],
5263+ 'session_set-0-agenda' : 'modified agenda contents' ,
5264+ 'session_set-0-agenda_note' : formset_initial ['agenda_note' ],
5265+ 'session_set-TOTAL_FORMS' : 1 ,
5266+ 'session_set-INITIAL_FORMS' : 1 ,
5267+ }
5268+ data .update (form_initial )
5269+ r = self .client .post (url , data )
5270+ self .assertRedirects (r , urlreverse ('ietf.meeting.views.interim_request_details' , kwargs = {'number' : meeting .number }))
5271+
5272+ session = Session .objects .get (pk = session .pk ) # refresh
5273+ agenda_doc = session .agenda ()
5274+ self .assertEqual (agenda_doc .rev , f'{ int (rev_before ) + 1 :02} ' , 'Revision of agenda should increase' )
5275+ self .assertNotEqual (agenda_doc .uploaded_filename , uploaded_filename_before , 'Uploaded filename should be updated' )
5276+ with (Path (agenda_doc .get_file_path ()) / agenda_doc .uploaded_filename ).open () as f :
5277+ self .assertEqual (f .read (), 'modified agenda contents' , 'New agenda contents should be saved' )
5278+
52405279 def test_interim_request_details_permissions (self ):
52415280 make_interim_test_data ()
52425281 meeting = add_event_info_to_session_qs (Session .objects .filter (meeting__type = 'interim' , group__acronym = 'mars' )).filter (current_status = 'apprw' ).first ().meeting
0 commit comments