@@ -534,63 +534,74 @@ def test_add_comment(self):
534534 self .assertTrue (draft .name in mail_outbox [- 1 ]['Subject' ])
535535
536536class EditPositionTestCase (django .test .TestCase ):
537- fixtures = ['base' , 'draft' , 'ballot ' ]
537+ fixtures = ['names ' ]
538538
539539 def test_edit_position (self ):
540- draft = InternetDraft . objects . get ( filename = "draft-ietf-mipshop-pfmipv6" )
541- url = urlreverse ('doc_edit_position' , kwargs = dict (name = draft .filename ))
542- login_testing_unauthorized (self , "rhousley " , url )
540+ draft = make_test_data ( )
541+ url = urlreverse ('doc_edit_position' , kwargs = dict (name = draft .name ))
542+ login_testing_unauthorized (self , "ad " , url )
543543
544+ ad = Email .objects .get (address = "aread@ietf.org" )
545+
544546 # normal get
545547 r = self .client .get (url )
546548 self .assertEquals (r .status_code , 200 )
547549 q = PyQuery (r .content )
548550 self .assertTrue (len (q ('form input[name=position]' )) > 0 )
549- self .assertEquals (len (q ('form textarea[name=comment_text ]' )), 1 )
551+ self .assertEquals (len (q ('form textarea[name=comment ]' )), 1 )
550552
551553 # vote
552554 events_before = draft .event_set .count ()
553- self .assertTrue (not Position .objects .filter (ballot = draft .idinternal .ballot , ad__login_name = "rhousley" ))
554555
555556 r = self .client .post (url , dict (position = "discuss" ,
556- discuss_text = "This is a discussion test." ,
557- comment_text = "This is a test." ))
557+ discuss = "This is a discussion test." ,
558+ comment = "This is a test." ))
558559 self .assertEquals (r .status_code , 302 )
559560
560- pos = Position .objects .get (ballot = draft .idinternal .ballot , ad__login_name = "rhousley" )
561- self .assertTrue ("This is a discussion test." in IESGDiscuss .objects .get (ballot = draft .idinternal .ballot , ad__login_name = "rhousley" ).text )
562- self .assertTrue ("This is a test." in IESGComment .objects .get (ballot = draft .idinternal .ballot , ad__login_name = "rhousley" ).text )
563- self .assertTrue (pos .discuss )
564- self .assertTrue (not (pos .yes or pos .noobj or pos .abstain or pos .recuse ))
565-
561+ pos = draft .latest_event (BallotPosition , ad = ad )
562+ self .assertEquals (pos .pos .slug , "discuss" )
563+ self .assertTrue ("This is a discussion test." in pos .discuss )
564+ self .assertTrue (pos .discuss_time != None )
565+ self .assertTrue ("This is a test." in pos .comment )
566+ self .assertTrue (pos .comment_time != None )
567+ self .assertTrue ("New position" in pos .desc )
566568 self .assertEquals (draft .event_set .count (), events_before + 3 )
567- self .assertTrue ("New position" in draft .idinternal .comments ()[2 ].comment_text )
568569
569570 # recast vote
570571 events_before = draft .event_set .count ()
571572 r = self .client .post (url , dict (position = "noobj" ))
572573 self .assertEquals (r .status_code , 302 )
573574
574- pos = Position .objects .filter (ballot = draft .idinternal .ballot , ad__login_name = "rhousley" )[0 ]
575- self .assertTrue (pos .noobj )
576- self .assertTrue (not (pos .yes or pos .abstain or pos .recuse ))
577- self .assertTrue (pos .discuss == - 1 )
575+ pos = draft .latest_event (BallotPosition , ad = ad )
576+ self .assertEquals (pos .pos .slug , "noobj" )
578577 self .assertEquals (draft .event_set .count (), events_before + 1 )
579- self .assertTrue ("Position" in draft . idinternal . comments ()[ 0 ]. comment_text )
578+ self .assertTrue ("Position for " in pos . desc )
580579
581580 # clear vote
582581 events_before = draft .event_set .count ()
583- r = self .client .post (url , dict (position = "" ))
582+ r = self .client .post (url , dict (position = "norecord " ))
584583 self .assertEquals (r .status_code , 302 )
585584
586- pos = Position . objects . filter ( ballot = draft .idinternal . ballot , ad__login_name = "rhousley" )
587- self .assertEquals (len ( pos ), 0 )
585+ pos = draft .latest_event ( BallotPosition , ad = ad )
586+ self .assertEquals (pos . pos . slug , "norecord" )
588587 self .assertEquals (draft .event_set .count (), events_before + 1 )
589- self .assertTrue ("Position" in draft .idinternal .comments ()[0 ].comment_text )
588+ self .assertTrue ("Position for" in pos .desc )
589+
590+ # change comment
591+ events_before = draft .event_set .count ()
592+ r = self .client .post (url , dict (position = "norecord" , comment = "New comment." ))
593+ self .assertEquals (r .status_code , 302 )
594+
595+ pos = draft .latest_event (BallotPosition , ad = ad )
596+ self .assertEquals (pos .pos .slug , "norecord" )
597+ self .assertEquals (draft .event_set .count (), events_before + 2 )
598+ self .assertTrue ("Ballot comment text updated" in pos .desc )
599+
590600 def test_edit_position_as_secretary (self ):
591- draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
592- url = urlreverse ('doc_edit_position' , kwargs = dict (name = draft .filename ))
593- url += "?ad=rhousley"
601+ draft = make_test_data ()
602+ url = urlreverse ('doc_edit_position' , kwargs = dict (name = draft .name ))
603+ ad = Email .objects .get (address = "aread@ietf.org" )
604+ url += "?ad=%s" % ad .pk
594605 login_testing_unauthorized (self , "secretary" , url )
595606
596607 # normal get
@@ -599,23 +610,30 @@ def test_edit_position_as_secretary(self):
599610 q = PyQuery (r .content )
600611 self .assertTrue (len (q ('form input[name=position]' )) > 0 )
601612
602- # vote for rhousley
613+ # vote on behalf of AD
603614 events_before = draft .event_set .count ()
604- self .assertTrue (not Position .objects .filter (ballot = draft .idinternal .ballot , ad__login_name = "rhousley" ))
605-
606615 r = self .client .post (url , dict (position = "discuss" ))
607616 self .assertEquals (r .status_code , 302 )
608617
609- pos = Position . objects . get ( ballot = draft .idinternal . ballot , ad__login_name = "rhousley" )
610- self .assertTrue (pos .discuss )
611- self .assertTrue (not ( pos . yes or pos .noobj or pos . abstain or pos . recuse ) )
612-
618+ pos = draft .latest_event ( BallotPosition , ad = ad )
619+ self .assertEquals (pos .pos . slug , " discuss" )
620+ self .assertTrue ("New position" in pos .desc )
621+ self . assertTrue ( "by Sec" in pos . desc )
613622
614623 def test_send_ballot_comment (self ):
615- draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
616- url = urlreverse ('doc_send_ballot_comment' , kwargs = dict (name = draft .filename ))
617- login_as = "rhousley"
618- login_testing_unauthorized (self , login_as , url )
624+ draft = make_test_data ()
625+ draft .notify = "somebody@example.com"
626+ draft .save ()
627+
628+ ad = Email .objects .get (address = "aread@ietf.org" )
629+
630+ BallotPosition .objects .create (doc = draft , type = "changed_ballot_position" ,
631+ by = ad , ad = ad , pos = BallotPositionName .objects .get (slug = "yes" ),
632+ comment = "Test!" ,
633+ comment_time = datetime .datetime .now ())
634+
635+ url = urlreverse ('doc_send_ballot_comment' , kwargs = dict (name = draft .name ))
636+ login_testing_unauthorized (self , "ad" , url )
619637
620638 # normal get
621639 r = self .client .get (url )
@@ -625,24 +643,23 @@ def test_send_ballot_comment(self):
625643
626644 # send
627645 mailbox_before = len (mail_outbox )
628- IESGComment .objects .create (ballot = draft .idinternal .ballot ,
629- ad = IESGLogin .objects .get (login_name = login_as ),
630- text = "Test!" , date = date .today (),
631- revision = draft .revision_display (), active = 1 )
632-
646+
633647 r = self .client .post (url , dict (cc = "test@example.com" , cc_state_change = "1" ))
634648 self .assertEquals (r .status_code , 302 )
635649
636650 self .assertEquals (len (mail_outbox ), mailbox_before + 1 )
637- self .assertTrue ("COMMENT" in mail_outbox [- 1 ]['Subject' ])
651+ m = mail_outbox [- 1 ]
652+ self .assertTrue ("COMMENT" in m ['Subject' ])
653+ self .assertTrue (draft .name in m ['Subject' ])
654+ self .assertTrue ("Test!" in str (m ))
638655
639656
640657class DeferBallotTestCase (django .test .TestCase ):
641658 fixtures = ['base' , 'draft' , 'ballot' ]
642659
643660 def test_defer_ballot (self ):
644661 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
645- url = urlreverse ('doc_defer_ballot' , kwargs = dict (name = draft .filename ))
662+ url = urlreverse ('doc_defer_ballot' , kwargs = dict (name = draft .name ))
646663 login_testing_unauthorized (self , "rhousley" , url )
647664
648665 # normal get
@@ -666,7 +683,7 @@ def test_defer_ballot(self):
666683
667684 def test_undefer_ballot (self ):
668685 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
669- url = urlreverse ('doc_undefer_ballot' , kwargs = dict (name = draft .filename ))
686+ url = urlreverse ('doc_undefer_ballot' , kwargs = dict (name = draft .name ))
670687 login_testing_unauthorized (self , "rhousley" , url )
671688
672689 draft .idinternal .ballot .defer = True
@@ -691,7 +708,7 @@ class BallotWriteupsTestCase(django.test.TestCase):
691708
692709 def test_edit_last_call_text (self ):
693710 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
694- url = urlreverse ('doc_ballot_lastcall' , kwargs = dict (name = draft .filename ))
711+ url = urlreverse ('doc_ballot_lastcall' , kwargs = dict (name = draft .name ))
695712 login_testing_unauthorized (self , "secretary" , url )
696713
697714 # normal get
@@ -728,7 +745,7 @@ def test_edit_last_call_text(self):
728745
729746 def test_request_last_call (self ):
730747 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
731- url = urlreverse ('doc_ballot_lastcall' , kwargs = dict (name = draft .filename ))
748+ url = urlreverse ('doc_ballot_lastcall' , kwargs = dict (name = draft .name ))
732749 login_testing_unauthorized (self , "secretary" , url )
733750
734751 mailbox_before = len (mail_outbox )
@@ -745,7 +762,7 @@ def test_request_last_call(self):
745762
746763 def test_edit_ballot_writeup (self ):
747764 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
748- url = urlreverse ('doc_ballot_writeupnotes' , kwargs = dict (name = draft .filename ))
765+ url = urlreverse ('doc_ballot_writeupnotes' , kwargs = dict (name = draft .name ))
749766 login_testing_unauthorized (self , "secretary" , url )
750767
751768 # normal get
@@ -765,7 +782,7 @@ def test_edit_ballot_writeup(self):
765782
766783 def test_issue_ballot (self ):
767784 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
768- url = urlreverse ('doc_ballot_writeupnotes' , kwargs = dict (name = draft .filename ))
785+ url = urlreverse ('doc_ballot_writeupnotes' , kwargs = dict (name = draft .name ))
769786 login_testing_unauthorized (self , "rhousley" , url )
770787
771788 draft .idinternal .ballot .ballot_issued = False
@@ -800,7 +817,7 @@ def test_issue_ballot(self):
800817
801818 def test_edit_approval_text (self ):
802819 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
803- url = urlreverse ('doc_ballot_approvaltext' , kwargs = dict (name = draft .filename ))
820+ url = urlreverse ('doc_ballot_approvaltext' , kwargs = dict (name = draft .name ))
804821 login_testing_unauthorized (self , "secretary" , url )
805822
806823 # normal get
@@ -840,7 +857,7 @@ class ApproveBallotTestCase(django.test.TestCase):
840857
841858 def test_approve_ballot (self ):
842859 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
843- url = urlreverse ('doc_approve_ballot' , kwargs = dict (name = draft .filename ))
860+ url = urlreverse ('doc_approve_ballot' , kwargs = dict (name = draft .name ))
844861 login_testing_unauthorized (self , "secretary" , url )
845862
846863 # normal get
@@ -875,7 +892,7 @@ def test_make_last_call(self):
875892 draft .lc_expiration_date = None
876893 draft .save ()
877894
878- url = urlreverse ('doc_make_last_call' , kwargs = dict (name = draft .filename ))
895+ url = urlreverse ('doc_make_last_call' , kwargs = dict (name = draft .name ))
879896 login_testing_unauthorized (self , "secretary" , url )
880897
881898 # normal get
@@ -984,7 +1001,7 @@ def test_expire_ids(self):
9841001 self .assertEquals (int (draft .revision ), int (revision_before ) + 1 )
9851002 self .assertTrue (not os .path .exists (os .path .join (self .id_dir , txt )))
9861003 self .assertTrue (os .path .exists (os .path .join (self .archive_dir , txt )))
987- new_txt = "%s-%s.txt" % (draft .filename , draft .revision )
1004+ new_txt = "%s-%s.txt" % (draft .name , draft .revision )
9881005 self .assertTrue (os .path .exists (os .path .join (self .id_dir , new_txt )))
9891006
9901007 def test_clean_up_id_files (self ):
@@ -1015,9 +1032,9 @@ def test_clean_up_id_files(self):
10151032 draft .status_id = 3
10161033 draft .save ()
10171034
1018- txt = "%s-%s.txt" % (draft .filename , draft .revision )
1035+ txt = "%s-%s.txt" % (draft .name , draft .revision )
10191036 self .write_id_file (txt , 5000 )
1020- pdf = "%s-%s.pdf" % (draft .filename , draft .revision )
1037+ pdf = "%s-%s.pdf" % (draft .name , draft .revision )
10211038 self .write_id_file (pdf , 5000 )
10221039
10231040 clean_up_id_files ()
@@ -1035,7 +1052,7 @@ def test_clean_up_id_files(self):
10351052 draft .expiration_date = datetime .date .today () - datetime .timedelta (days = InternetDraft .DAYS_TO_EXPIRE + 1 )
10361053 draft .save ()
10371054
1038- txt = "%s-%s.txt" % (draft .filename , draft .revision )
1055+ txt = "%s-%s.txt" % (draft .name , draft .revision )
10391056 self .write_id_file (txt , 5000 )
10401057
10411058 clean_up_id_files ()
@@ -1053,7 +1070,7 @@ def test_clean_up_id_files(self):
10531070
10541071 revision_before = draft .revision
10551072
1056- txt = "%s-%s.txt" % (draft .filename , draft .revision )
1073+ txt = "%s-%s.txt" % (draft .name , draft .revision )
10571074 self .write_id_file (txt , 1000 )
10581075
10591076 clean_up_id_files ()
0 commit comments