@@ -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_state" ).desc .lower ())
55+
3356 def test_change_state (self ):
3457 make_test_data ()
3558
@@ -71,7 +94,7 @@ def test_change_state(self):
7194 def find_event (t ):
7295 return [e for e in charter .docevent_set .all ()[:events_now - events_before ] if e .type == t ]
7396
74- self .assertTrue ("state changed" in find_event ("changed_document " )[0 ].desc .lower ())
97+ self .assertTrue ("state changed" in find_event ("changed_state " )[0 ].desc .lower ())
7598
7699 if slug in ("intrev" , "iesgrev" ):
77100 self .assertTrue (find_event ("created_ballot" ))
@@ -88,6 +111,10 @@ def test_edit_telechat_date(self):
88111 url = urlreverse ('charter_telechat_date' , kwargs = dict (name = charter .name ))
89112 login_testing_unauthorized (self , "secretary" , url )
90113
114+ # get
115+ r = self .client .get (url )
116+ self .assertEqual (r .status_code , 200 )
117+
91118 # add to telechat
92119 self .assertTrue (not charter .latest_event (TelechatDocEvent , "scheduled_for_telechat" ))
93120 telechat_date = TelechatDate .objects .active ()[0 ].date
@@ -122,6 +149,10 @@ def test_edit_notify(self):
122149 url = urlreverse ('charter_edit_notify' , kwargs = dict (name = charter .name ))
123150 login_testing_unauthorized (self , "secretary" , url )
124151
152+ # get
153+ r = self .client .get (url )
154+ self .assertEqual (r .status_code , 200 )
155+
125156 # post
126157 self .assertTrue (not charter .notify )
127158 r = self .client .post (url , dict (notify = "someone@example.com, someoneelse@example.com" ))
@@ -195,15 +226,82 @@ def test_submit_charter(self):
195226 self .assertEqual (f .read (),
196227 "Windows line\n Mac line\n Unix line\n " + utf_8_snippet )
197228
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
229+ def test_edit_announcement_text (self ):
230+ draft = make_test_data ()
231+ charter = draft .group .charter
232+
233+ for ann in ("action" , "review" ):
234+ url = urlreverse ('ietf.doc.views_charter.announcement_text' , kwargs = dict (name = charter .name , ann = ann ))
235+ self .client .logout ()
236+ login_testing_unauthorized (self , "secretary" , url )
237+
238+ # normal get
239+ r = self .client .get (url )
240+ self .assertEqual (r .status_code , 200 )
241+ q = PyQuery (r .content )
242+ self .assertEqual (len (q ('textarea[name=announcement_text]' )), 1 )
243+ # as Secretariat, we can send
244+ if ann == "review" :
245+ mailbox_before = len (outbox )
246+ by = Person .objects .get (user__username = "secretary" )
247+ r = self .client .post (url , dict (
248+ announcement_text = default_review_text (draft .group , charter , by ).text ,
249+ send_text = "1" ))
250+ self .assertEqual (len (outbox ), mailbox_before + 1 )
251+
252+ # save
253+ r = self .client .post (url , dict (
254+ announcement_text = "This is a simple test." ,
255+ save_text = "1" ))
256+ self .assertEqual (r .status_code , 302 )
257+ self .assertTrue ("This is a simple test" in charter .latest_event (WriteupDocEvent , type = "changed_%s_announcement" % ann ).text )
203258
204- def tearDown (self ):
205- shutil .rmtree (self .charter_dir )
259+ # test regenerate
260+ r = self .client .post (url , dict (
261+ announcement_text = "This is a simple test." ,
262+ regenerate_text = "1" ))
263+ self .assertEqual (r .status_code , 200 )
264+ q = PyQuery (r .content )
265+ self .assertTrue (draft .group .name in charter .latest_event (WriteupDocEvent , type = "changed_%s_announcement" % ann ).text )
266+
267+ def test_edit_ballot_writeupnotes (self ):
268+ draft = make_test_data ()
269+ charter = draft .group .charter
270+ by = Person .objects .get (user__username = "secretary" )
271+
272+ BallotDocEvent .objects .create (
273+ type = "created_ballot" ,
274+ ballot_type = BallotType .objects .get (doc_type = "charter" , slug = "approve" ),
275+ by = by ,
276+ doc = charter ,
277+ desc = "Created ballot" ,
278+ )
279+
280+ url = urlreverse ('ietf.doc.views_charter.ballot_writeupnotes' , kwargs = dict (name = charter .name ))
281+ login_testing_unauthorized (self , "secretary" , url )
282+
283+ default_action_text (draft .group , charter , by )
284+
285+ # normal get
286+ r = self .client .get (url )
287+ self .assertEqual (r .status_code , 200 )
288+ q = PyQuery (r .content )
289+ self .assertEqual (len (q ('textarea[name=ballot_writeup]' )), 1 )
290+
291+ # save
292+ r = self .client .post (url , dict (
293+ ballot_writeup = "This is a simple test." ,
294+ save_ballot_writeup = "1" ))
295+ self .assertEqual (r .status_code , 200 )
296+ self .assertTrue ("This is a simple test" in charter .latest_event (WriteupDocEvent , type = "changed_ballot_writeup_text" ).text )
206297
298+ # send
299+ mailbox_before = len (outbox )
300+ r = self .client .post (url , dict (
301+ ballot_writeup = "This is a simple test." ,
302+ send_ballot = "1" ))
303+ self .assertEqual (len (outbox ), mailbox_before + 1 )
304+
207305 def test_approve (self ):
208306 make_test_data ()
209307
@@ -278,3 +376,23 @@ def test_approve(self):
278376 self .assertEqual (group .groupmilestone_set .filter (state = "active" ).count (), 2 )
279377 self .assertEqual (group .groupmilestone_set .filter (state = "active" , desc = m1 .desc ).count (), 1 )
280378 self .assertEqual (group .groupmilestone_set .filter (state = "active" , desc = m4 .desc ).count (), 1 )
379+
380+ def test_charter_with_milestones (self ):
381+ draft = make_test_data ()
382+ charter = draft .group .charter
383+
384+ NewRevisionDocEvent .objects .create (doc = charter ,
385+ type = "new_revision" ,
386+ rev = charter .rev ,
387+ by = Person .objects .get (name = "(System)" ))
388+
389+ m = GroupMilestone .objects .create (group = draft .group ,
390+ state_id = "active" ,
391+ desc = "Test milestone" ,
392+ due = datetime .date .today (),
393+ resolved = "" )
394+
395+ url = urlreverse ('charter_with_milestones_txt' , kwargs = dict (name = charter .name , rev = charter .rev ))
396+ r = self .client .get (url )
397+ self .assertEqual (r .status_code , 200 )
398+ self .assertTrue (m .desc in r .content )
0 commit comments