1- import os , shutil
1+ import os , shutil , json
22
33import django .test
44from django .core .urlresolvers import reverse as urlreverse
55from django .conf import settings
66
77from pyquery import PyQuery
88
9+ from ietf .utils .test_utils import SimpleUrlTestCase , RealDatabaseTest , canonicalize_feed , login_testing_unauthorized
910from ietf .utils .test_data import make_test_data
1011from ietf .doc .models import Document , DocEvent , TelechatDocEvent , State
1112from ietf .person .models import Person
1213from ietf .group .models import Group
14+ from ietf .name .models import StreamName
1315from ietf .iesg .models import *
14- from ietf .utils . test_utils import SimpleUrlTestCase , RealDatabaseTest , canonicalize_feed , login_testing_unauthorized
16+ from ietf .iesg . agenda import get_agenda_date
1517
1618class ReviewDecisionsTests (django .test .TestCase ):
1719 def test_review_decisions (self ):
@@ -30,27 +32,113 @@ def test_review_decisions(self):
3032
3133
3234class IESGAgendaTests (django .test .TestCase ):
33- def test_feed (self ):
34- draft = make_test_data ()
35+ def setUp (self ):
36+ make_test_data ()
37+
38+ ise_draft = Document .objects .get (name = "draft-imaginary-independent-submission" )
39+ ise_draft .stream = StreamName .objects .get (slug = "ise" )
40+ ise_draft .save ()
41+
42+ self .telechat_docs = {
43+ "ietf_draft" : Document .objects .get (name = "draft-ietf-mars-test" ),
44+ "ise_draft" : ise_draft ,
45+ "conflrev" : Document .objects .get (name = "conflict-review-imaginary-irtf-submission" ),
46+ "statusch" : Document .objects .get (name = "status-change-imaginary-mid-review" ),
47+ "charter" : Document .objects .filter (type = "charter" )[0 ],
48+ }
49+
50+ by = Person .objects .get (name = "Aread Irector" )
51+ date = get_agenda_date ()
52+
53+ for d in self .telechat_docs .values ():
54+ TelechatDocEvent .objects .create (type = "scheduled_for_telechat" ,
55+ doc = d ,
56+ by = by ,
57+ telechat_date = date ,
58+ returning_item = True )
3559
60+ def test_feed (self ):
3661 url = "/feed/iesg-agenda/"
3762
3863 r = self .client .get (url )
3964 self .assertEquals (r .status_code , 200 )
40- self .assertTrue (draft .name not in r .content )
4165
42- # add to schedule
43- e = TelechatDocEvent ( type = "scheduled_for_telechat" )
44- e . doc = draft
45- e . by = Person . objects . get ( name = "Aread Irector" )
46- e . telechat_date = TelechatDate . objects . active ()[ 0 ]. date
47- e . returning_item = True
48- e . save ( )
66+ for d in self . telechat_docs . values ():
67+ self . assertTrue ( d . name in r . content )
68+ self . assertTrue ( d . title in r . content )
69+
70+ def test_agenda_json ( self ):
71+ r = self . client . get ( urlreverse ( "ietf.iesg.views.agenda_json" ))
72+ self . assertEquals ( r . status_code , 200 )
4973
74+ for k , d in self .telechat_docs .iteritems ():
75+ if d .type_id == "charter" :
76+ self .assertTrue (d .group .name in r .content , "%s not in response" % k )
77+ self .assertTrue (d .group .acronym in r .content , "%s acronym not in response" % k )
78+ else :
79+ self .assertTrue (d .name in r .content , "%s not in response" % k )
80+ self .assertTrue (d .title in r .content , "%s title not in response" % k )
81+
82+ self .assertTrue (json .loads (r .content ))
83+
84+ def test_agenda (self ):
85+ r = self .client .get (urlreverse ("ietf.iesg.views.agenda" ))
86+ self .assertEquals (r .status_code , 200 )
87+
88+ for k , d in self .telechat_docs .iteritems ():
89+ self .assertTrue (d .name in r .content , "%s not in response" % k )
90+ self .assertTrue (d .title in r .content , "%s title not in response" % k )
91+
92+ def test_agenda_txt (self ):
93+ r = self .client .get (urlreverse ("ietf.iesg.views.agenda_txt" ))
94+ self .assertEquals (r .status_code , 200 )
95+
96+ for k , d in self .telechat_docs .iteritems ():
97+ if d .type_id == "charter" :
98+ self .assertTrue (d .group .name in r .content , "%s not in response" % k )
99+ self .assertTrue (d .group .acronym in r .content , "%s acronym not in response" % k )
100+ else :
101+ self .assertTrue (d .name in r .content , "%s not in response" % k )
102+ self .assertTrue (d .title in r .content , "%s title not in response" % k )
103+
104+ def test_agenda_scribe_template (self ):
105+ r = self .client .get (urlreverse ("ietf.iesg.views.agenda_scribe_template" ))
106+ self .assertEquals (r .status_code , 200 )
107+
108+ for k , d in self .telechat_docs .iteritems ():
109+ if d .type_id == "charter" :
110+ continue # scribe template doesn't contain chartering info
111+
112+ self .assertTrue (d .name in r .content , "%s not in response" % k )
113+ self .assertTrue (d .title in r .content , "%s title not in response" % k )
114+
115+ def test_agenda_moderator_package (self ):
116+ url = urlreverse ("ietf.iesg.views.agenda_moderator_package" )
117+ login_testing_unauthorized (self , "secretary" , url )
50118 r = self .client .get (url )
51119 self .assertEquals (r .status_code , 200 )
52- self .assertTrue (draft .name in r .content )
53- self .assertTrue (draft .title in r .content )
120+
121+ for k , d in self .telechat_docs .iteritems ():
122+ if d .type_id == "charter" :
123+ self .assertTrue (d .group .name in r .content , "%s not in response" % k )
124+ self .assertTrue (d .group .acronym in r .content , "%s acronym not in response" % k )
125+ else :
126+ self .assertTrue (d .name in r .content , "%s not in response" % k )
127+ self .assertTrue (d .title in r .content , "%s title not in response" % k )
128+
129+ def test_agenda_package (self ):
130+ url = urlreverse ("ietf.iesg.views.agenda_package" )
131+ login_testing_unauthorized (self , "secretary" , url )
132+ r = self .client .get (url )
133+ self .assertEquals (r .status_code , 200 )
134+
135+ for k , d in self .telechat_docs .iteritems ():
136+ if d .type_id == "charter" :
137+ self .assertTrue (d .group .name in r .content , "%s not in response" % k )
138+ self .assertTrue (d .group .acronym in r .content , "%s acronym not in response" % k )
139+ else :
140+ self .assertTrue (d .name in r .content , "%s not in response" % k )
141+ self .assertTrue (d .title in r .content , "%s title not in response" % k )
54142
55143class RescheduleOnAgendaTestCase (django .test .TestCase ):
56144 def test_reschedule (self ):
0 commit comments