@@ -2101,6 +2101,53 @@ def test_approve_proposed_slides_multisession_apply_all(self):
21012101 self .assertEqual (session1 .sessionpresentation_set .count (),1 )
21022102 self .assertEqual (session2 .sessionpresentation_set .count (),1 )
21032103
2104+ def test_submit_and_approve_multiple_versions (self ):
2105+ session = SessionFactory (meeting__type_id = 'ietf' )
2106+ chair = RoleFactory (group = session .group ,name_id = 'chair' ).person
2107+ session .meeting .importantdate_set .create (name_id = 'revsub' ,date = datetime .date .today ()+ datetime .timedelta (days = 20 ))
2108+ newperson = PersonFactory ()
2109+
2110+ propose_url = urlreverse ('ietf.meeting.views.propose_session_slides' , kwargs = {'session_id' :session .pk , 'num' : session .meeting .number })
2111+
2112+ login_testing_unauthorized (self ,newperson .user .username ,propose_url )
2113+ test_file = BytesIO (b'this is not really a slide' )
2114+ test_file .name = 'not_really.txt'
2115+ r = self .client .post (propose_url ,dict (file = test_file ,title = 'a test slide file' ,apply_to_all = True ))
2116+ self .assertEqual (r .status_code , 302 )
2117+ self .client .logout ()
2118+
2119+ submission = SlideSubmission .objects .get (session = session )
2120+
2121+ approve_url = urlreverse ('ietf.meeting.views.approve_proposed_slides' , kwargs = {'slidesubmission_id' :submission .pk ,'num' :submission .session .meeting .number })
2122+ login_testing_unauthorized (self , chair .user .username , approve_url )
2123+ r = self .client .post (approve_url ,dict (title = submission .title ,approve = 'approve' ))
2124+ self .assertEqual (r .status_code ,302 )
2125+ self .client .logout ()
2126+
2127+ self .assertEqual (session .sessionpresentation_set .first ().document .rev ,'00' )
2128+
2129+ login_testing_unauthorized (self ,newperson .user .username ,propose_url )
2130+ test_file = BytesIO (b'this is not really a slide, but it is another version of it' )
2131+ test_file .name = 'not_really.txt'
2132+ r = self .client .post (propose_url ,dict (file = test_file ,title = 'a test slide file' ,apply_to_all = True ))
2133+ self .assertEqual (r .status_code , 302 )
2134+ self .client .logout ()
2135+
2136+ submission = SlideSubmission .objects .get (session = session )
2137+
2138+ approve_url = urlreverse ('ietf.meeting.views.approve_proposed_slides' , kwargs = {'slidesubmission_id' :submission .pk ,'num' :submission .session .meeting .number })
2139+ login_testing_unauthorized (self , chair .user .username , approve_url )
2140+ r = self .client .post (approve_url ,dict (title = submission .title ,approve = 'approve' ))
2141+ self .assertEqual (r .status_code ,302 )
2142+ self .client .logout ()
2143+
2144+ self .assertEqual (session .sessionpresentation_set .first ().document .rev ,'01' )
2145+ path = os .path .join (submission .session .meeting .get_materials_path (),'slides' )
2146+ filename = os .path .join (path ,session .sessionpresentation_set .first ().document .name + '-01.txt' )
2147+ self .assertTrue (os .path .exists (filename ))
2148+ contents = open (filename ,'r' ).read ()
2149+ self .assertIn ('another version' , contents )
2150+
21042151
21052152class SessionTests (TestCase ):
21062153
0 commit comments