22import os
33import shutil
44
5- from StringIO import StringIO
65from django .conf import settings
76from django .urls import reverse as urlreverse
87from django .utils .http import urlencode
1110
1211from ietf .doc .expire import expire_draft
1312from ietf .doc .factories import DocumentFactory
14- from ietf .doc .models import State , Document
13+ from ietf .doc .models import Document
1514from ietf .meeting .factories import MeetingFactory
1615from ietf .person .factories import PersonFactory
1716from ietf .person .models import Person
1817from ietf .submit .models import Preapproval
19- from ietf .submit .tests import submission_file
2018from ietf .utils .test_utils import TestCase , login_testing_unauthorized
2119from ietf .utils .test_data import make_test_data
22- from ietf .utils .mail import empty_outbox
2320from ietf .secr .drafts .email import get_email_initial
2421
2522
@@ -54,26 +51,6 @@ def test_abstract(self):
5451 response = self .client .get (url )
5552 self .assertEqual (response .status_code , 200 )
5653
57- def test_add (self ):
58- draft = make_test_data ()
59- url = urlreverse ('ietf.secr.drafts.views.add' )
60- self .client .login (username = "secretary" , password = "secretary+password" )
61- response = self .client .get (url )
62- self .assertEqual (response .status_code , 200 )
63-
64- # dummy upload file
65- txt_file = StringIO ('This is a simple text file.' )
66- txt_file .name = "draft-dummy-00.txt"
67-
68- post = dict (title = 'A test draft' ,
69- group = draft .group .pk ,
70- start_date = '2015-01-01' ,
71- pages = '10' ,
72- txt = txt_file
73- )
74- response = self .client .post (url ,post )
75- self .assertEqual (response .status_code , 302 )
76-
7754 def test_approvals (self ):
7855 make_test_data ()
7956 Preapproval .objects .create (name = 'draft-dummy' ,
@@ -104,48 +81,8 @@ def test_get_email_initial(self):
10481 # Makes sure that a manual posting by the Secretariat of an I-D that is
10582 # in the RFC Editor Queue will result in notification of the RFC Editor
10683 draft = make_test_data ()
107- state = State .objects .get (type = 'draft-iesg' ,slug = 'rfcqueue' )
108- draft .set_state (state )
109- data = get_email_initial (draft ,action = 'revision' )
110- self .assertTrue ('rfc-editor@rfc-editor.org' in data ['to' ])
111-
112- def test_revision (self ):
113- draft = make_test_data ()
114- url = urlreverse ('ietf.secr.drafts.views.revision' , kwargs = {'id' :draft .name })
115- view_url = urlreverse ('ietf.secr.drafts.views.view' , kwargs = {'id' :draft .name })
116- self .client .login (username = "secretary" , password = "secretary+password" )
117- response = self .client .get (url )
118- self .assertEqual (response .status_code , 200 )
119- post_data = {
120- 'title' : draft .title ,
121- 'pages' : str (draft .pages ),
122- 'abstract' : draft .abstract ,
123- }
124- files = {}
125- files ['txt' ] = submission_file (draft .name , '02' , draft .group , 'txt' , "test_submission.txt" )
126- post_data .update (files )
127- response = self .client .post (url , post_data )
128- self .assertRedirects (response , view_url )
129- draft = Document .objects .get (name = draft .name )
130- self .assertEqual (draft .rev , '02' )
131-
132- def test_revision_rfcqueue (self ):
133- # Makes sure that a manual posting by the Secretariat of an I-D that is
134- # in the RFC Editor Queue will result in notification of the RFC Editor
135- draft = make_test_data ()
136- empty_outbox ()
137- state = State .objects .get (type = 'draft-iesg' ,slug = 'rfcqueue' )
138- draft .set_state (state )
139- url = urlreverse ('ietf.secr.drafts.views.revision' , kwargs = {'id' :draft .name })
140- self .client .login (username = "secretary" , password = "secretary+password" )
141- rev = str (int (draft .rev ) + 1 ).zfill (2 )
142- file = StringIO ("This is a test." )
143- file .name = "%s-%s.txt" % (draft .name , rev )
144- post = {'title' :'The Title' ,'pages' :'10' ,'txt' :file }
145- response = self .client .post (url ,post ,follow = True )
146- self .assertEqual (response .status_code , 200 )
147- # addresses = ','.join([ m['To'] for m in outbox ])
148- # self.assertTrue('rfc-editor@rfc-editor.org' in addresses)
84+ data = get_email_initial (draft ,action = 'extend' ,input = {'expiration_date' : '2050-01-01' })
85+ self .assertTrue ('Extension of Expiration Date' in data ['subject' ])
14986
15087 def test_makerfc (self ):
15188 draft = make_test_data ()
@@ -166,51 +103,6 @@ def test_search(self):
166103 response = self .client .post (url , post )
167104 self .assertEqual (response .status_code , 200 )
168105 self .assertTrue (draft .name in response .content )
169-
170- def test_update (self ):
171- draft = make_test_data ()
172- path = os .path .join (self .repository_dir , draft .filename_with_rev ())
173- with open (path , 'w' ) as file :
174- file .write ('test' )
175- expire_draft (draft )
176- url = urlreverse ('ietf.secr.drafts.views.update' , kwargs = {'id' :draft .name })
177- email_url = urlreverse ('ietf.secr.drafts.views.email' , kwargs = {'id' :draft .name })
178- confirm_url = urlreverse ('ietf.secr.drafts.views.confirm' , kwargs = {'id' :draft .name })
179- do_action_url = urlreverse ('ietf.secr.drafts.views.do_action' , kwargs = {'id' :draft .name })
180- view_url = urlreverse ('ietf.secr.drafts.views.view' , kwargs = {'id' :draft .name })
181- self .client .login (username = "secretary" , password = "secretary+password" )
182- response = self .client .get (url )
183- self .assertEqual (response .status_code , 200 )
184- post_data = {
185- 'title' : draft .title ,
186- 'pages' : str (draft .pages ),
187- 'abstract' : draft .abstract ,
188- }
189- formats = ['txt' ,]
190- files = {}
191- for format in formats :
192- files [format ] = submission_file (draft .name , '02' , draft .group , format , "test_submission.%s" % format )
193- post_data .update (files )
194- response = self .client .post (url , post_data )
195- self .assertRedirects (response , email_url + '?action=update&filename=%s-02' % (draft .name ))
196- post_data = {
197- 'action' : 'update' ,
198- 'to' : 'john@example.com' ,
199- 'cc' : 'joe@example.com' ,
200- 'subject' : 'test' ,
201- 'body' : 'text' ,
202- 'submit' : 'Save'
203- }
204- response = self .client .post (email_url + '?action=update&filename=%s-02' % (draft .name ), post_data )
205- response = self .client .post (confirm_url , post_data )
206- response = self .client .post (do_action_url , post_data )
207- self .assertRedirects (response , view_url )
208- draft = Document .objects .get (name = draft .name )
209- expires = datetime .datetime .now () + datetime .timedelta (settings .INTERNET_DRAFT_DAYS_TO_EXPIRE )
210- self .assertTrue (draft .get_state_slug ('draft' ) == 'active' )
211- self .assertEqual (draft .rev , '02' )
212- expiration_discrepancy_seconds = abs ((draft .expires - expires ).total_seconds ())
213- self .assertLess (expiration_discrepancy_seconds , 60 )
214106
215107 def test_view (self ):
216108 draft = make_test_data ()
0 commit comments