4141
4242from ietf .idrfc .models import *
4343from ietf .idtracker .models import *
44- from ietf .utils .test_utils import SimpleUrlTestCase , RealDatabaseTest
44+ from ietf .utils .test_utils import SimpleUrlTestCase , RealDatabaseTest , login_testing_unauthorized
4545from ietf .utils .test_runner import mail_outbox
4646
4747class IdRfcUrlTestCase (SimpleUrlTestCase ):
@@ -53,19 +53,12 @@ class ChangeStateTestCase(django.test.TestCase):
5353
5454 def test_change_state (self ):
5555 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
56+ url = urlreverse ('doc_change_state' , kwargs = dict (name = draft .filename ))
57+ login_testing_unauthorized (self , "klm" , url )
5658
5759 state = draft .idinternal .cur_state
5860 substate = draft .idinternal .cur_sub_state
5961 next_states = IDNextState .objects .filter (cur_state = draft .idinternal .cur_state )
60- url = urlreverse ('doc_change_state' , kwargs = dict (name = draft .filename ))
61-
62- # unauthorized get
63- r = self .client .get (url )
64- self .assertEquals (r .status_code , 302 )
65- self .assertTrue ("/accounts/login" in r ['Location' ])
66-
67-
68- self .client .login (remote_user = "klm" )
6962
7063 # normal get
7164 r = self .client .get (url )
@@ -143,16 +136,8 @@ class EditInfoTestCase(django.test.TestCase):
143136
144137 def test_edit_info (self ):
145138 draft = InternetDraft .objects .get (filename = "draft-ietf-mipshop-pfmipv6" )
146-
147139 url = urlreverse ('doc_edit_info' , kwargs = dict (name = draft .filename ))
148-
149- # unauthorized get
150- r = self .client .get (url )
151- self .assertEquals (r .status_code , 302 )
152- self .assertTrue ("/accounts/login" in r ['Location' ])
153-
154-
155- self .client .login (remote_user = "klm" )
140+ login_testing_unauthorized (self , "klm" , url )
156141
157142 # normal get
158143 r = self .client .get (url )
@@ -209,17 +194,10 @@ def test_request_resurrect(self):
209194 self .assertEquals (draft .status .status , "Expired" )
210195 self .assertTrue (not draft .idinternal .resurrect_requested_by )
211196
212-
213197 url = urlreverse ('doc_request_resurrect' , kwargs = dict (name = draft .filename ))
214-
215- # unauthorized get
216- r = self .client .get (url )
217- self .assertEquals (r .status_code , 302 )
218- self .assertTrue ("/accounts/login" in r ['Location' ])
219-
220-
221198 login_as = "rhousley"
222- self .client .login (remote_user = login_as )
199+
200+ login_testing_unauthorized (self , login_as , url )
223201
224202 # normal get
225203 r = self .client .get (url )
@@ -241,6 +219,32 @@ def test_request_resurrect(self):
241219 self .assertTrue (len (mail_outbox ) == 1 )
242220 self .assertTrue ("Resurrection" in mail_outbox [0 ]['Subject' ])
243221
222+ class AddCommentTestCase (django .test .TestCase ):
223+ fixtures = ['base' , 'draft' ]
224+
225+ def test_add_comment (self ):
226+ draft = InternetDraft .objects .get (filename = "draft-ietf-mip6-cn-ipsec" )
227+ url = urlreverse ('doc_add_comment' , kwargs = dict (name = draft .filename ))
228+ login_testing_unauthorized (self , "klm" , url )
229+
230+ # normal get
231+ r = self .client .get (url )
232+ self .assertEquals (r .status_code , 200 )
233+ q = PyQuery (r .content )
234+ self .assertEquals (len (q ('form textarea[name=comment]' )), 1 )
235+
236+ # request resurrect
237+ comments_before = draft .idinternal .comments ().count ()
238+
239+ r = self .client .post (url , dict (comment = "This is a test." ))
240+ self .assertEquals (r .status_code , 302 )
241+
242+ self .assertEquals (draft .idinternal .comments ().count (), comments_before + 1 )
243+ self .assertTrue ("This is a test." in draft .idinternal .comments ()[0 ].comment_text )
244+ self .assertTrue (len (mail_outbox ) == 1 )
245+ self .assertTrue ("updated" in mail_outbox [0 ]['Subject' ])
246+ self .assertTrue (draft .filename in mail_outbox [0 ]['Subject' ])
247+
244248
245249TEST_RFC_INDEX = '''<?xml version="1.0" encoding="UTF-8"?>
246250<rfc-index xmlns="http://www.rfc-editor.org/rfc-index"
0 commit comments