@@ -30,6 +30,29 @@ def setUp(self):
3030 def tearDown (self ):
3131 shutil .rmtree (self .charter_dir )
3232
33+ def test_startstop_process (self ):
34+ make_test_data ()
35+
36+ group = Group .objects .get (acronym = "mars" )
37+ charter = group .charter
38+
39+ for option in ("recharter" , "abandon" ):
40+ self .client .logout ()
41+ url = urlreverse ('charter_startstop_process' , kwargs = dict (name = charter .name , option = option ))
42+ login_testing_unauthorized (self , "secretary" , url )
43+
44+ # normal get
45+ r = self .client .get (url )
46+ self .assertEqual (r .status_code , 200 )
47+
48+ # post
49+ r = self .client .post (url , dict (message = "test message" ))
50+ self .assertEqual (r .status_code , 302 )
51+ if option == "abandon" :
52+ self .assertTrue ("abandoned" in charter .latest_event (type = "changed_document" ).desc .lower ())
53+ else :
54+ self .assertTrue ("state changed" in charter .latest_event (type = "changed_document" ).desc .lower ())
55+
3356 def test_change_state (self ):
3457 make_test_data ()
3558
@@ -195,15 +218,82 @@ def test_submit_charter(self):
195218 self .assertEqual (f .read (),
196219 "Windows line\n Mac line\n Unix line\n " + utf_8_snippet )
197220
198- class ApproveCharterTests (TestCase ):
199- def setUp (self ):
200- self .charter_dir = os .path .abspath ("tmp-charter-dir" )
201- os .mkdir (self .charter_dir )
202- settings .CHARTER_PATH = self .charter_dir
221+ def test_edit_announcement_text (self ):
222+ draft = make_test_data ()
223+ charter = draft .group .charter
224+
225+ for ann in ("action" , "review" ):
226+ url = urlreverse ('ietf.doc.views_charter.announcement_text' , kwargs = dict (name = charter .name , ann = ann ))
227+ self .client .logout ()
228+ login_testing_unauthorized (self , "secretary" , url )
229+
230+ # normal get
231+ r = self .client .get (url )
232+ self .assertEqual (r .status_code , 200 )
233+ q = PyQuery (r .content )
234+ self .assertEqual (len (q ('textarea[name=announcement_text]' )), 1 )
235+ # as Secretariat, we can send
236+ if ann == "review" :
237+ mailbox_before = len (outbox )
238+ by = Person .objects .get (user__username = "secretary" )
239+ r = self .client .post (url , dict (
240+ announcement_text = default_review_text (draft .group , charter , by ).text ,
241+ send_text = "1" ))
242+ self .assertEqual (len (outbox ), mailbox_before + 1 )
243+
244+ # save
245+ r = self .client .post (url , dict (
246+ announcement_text = "This is a simple test." ,
247+ save_text = "1" ))
248+ self .assertEqual (r .status_code , 302 )
249+ self .assertTrue ("This is a simple test" in charter .latest_event (WriteupDocEvent , type = "changed_%s_announcement" % ann ).text )
203250
204- def tearDown (self ):
205- shutil .rmtree (self .charter_dir )
251+ # test regenerate
252+ r = self .client .post (url , dict (
253+ announcement_text = "This is a simple test." ,
254+ regenerate_text = "1" ))
255+ self .assertEqual (r .status_code , 200 )
256+ q = PyQuery (r .content )
257+ self .assertTrue (draft .group .name in charter .latest_event (WriteupDocEvent , type = "changed_%s_announcement" % ann ).text )
258+
259+ def test_edit_ballot_writeupnotes (self ):
260+ draft = make_test_data ()
261+ charter = draft .group .charter
262+ by = Person .objects .get (user__username = "secretary" )
263+
264+ BallotDocEvent .objects .create (
265+ type = "created_ballot" ,
266+ ballot_type = BallotType .objects .get (doc_type = "charter" , slug = "approve" ),
267+ by = by ,
268+ doc = charter ,
269+ desc = "Created ballot" ,
270+ )
271+
272+ url = urlreverse ('ietf.doc.views_charter.ballot_writeupnotes' , kwargs = dict (name = charter .name ))
273+ login_testing_unauthorized (self , "secretary" , url )
274+
275+ default_action_text (draft .group , charter , by )
276+
277+ # normal get
278+ r = self .client .get (url )
279+ self .assertEqual (r .status_code , 200 )
280+ q = PyQuery (r .content )
281+ self .assertEqual (len (q ('textarea[name=ballot_writeup]' )), 1 )
206282
283+ # save
284+ r = self .client .post (url , dict (
285+ ballot_writeup = "This is a simple test." ,
286+ save_ballot_writeup = "1" ))
287+ self .assertEqual (r .status_code , 200 )
288+ self .assertTrue ("This is a simple test" in charter .latest_event (WriteupDocEvent , type = "changed_ballot_writeup_text" ).text )
289+
290+ # send
291+ mailbox_before = len (outbox )
292+ r = self .client .post (url , dict (
293+ ballot_writeup = "This is a simple test." ,
294+ send_ballot = "1" ))
295+ self .assertEqual (len (outbox ), mailbox_before + 1 )
296+
207297 def test_approve (self ):
208298 make_test_data ()
209299
@@ -278,3 +368,23 @@ def test_approve(self):
278368 self .assertEqual (group .groupmilestone_set .filter (state = "active" ).count (), 2 )
279369 self .assertEqual (group .groupmilestone_set .filter (state = "active" , desc = m1 .desc ).count (), 1 )
280370 self .assertEqual (group .groupmilestone_set .filter (state = "active" , desc = m4 .desc ).count (), 1 )
371+
372+ def test_charter_with_milestones (self ):
373+ draft = make_test_data ()
374+ charter = draft .group .charter
375+
376+ NewRevisionDocEvent .objects .create (doc = charter ,
377+ type = "new_revision" ,
378+ rev = charter .rev ,
379+ by = Person .objects .get (name = "(System)" ))
380+
381+ m = GroupMilestone .objects .create (group = draft .group ,
382+ state_id = "active" ,
383+ desc = "Test milestone" ,
384+ due = datetime .date .today (),
385+ resolved = "" )
386+
387+ url = urlreverse ('charter_with_milestones_txt' , kwargs = dict (name = charter .name , rev = charter .rev ))
388+ r = self .client .get (url )
389+ self .assertEqual (r .status_code , 200 )
390+ self .assertTrue (m .desc in r .content )
0 commit comments