11from django .core .urlresolvers import reverse
22
3+ import debug # pyflakes:ignore
4+
35from ietf .utils .test_utils import TestCase , unicontent
46from ietf .group .models import Group
5- #from ietf.meeting.models import Session
6- #from ietf.utils.test_data import make_test_data
7- from ietf .meeting .test_data import make_meeting_test_data as make_test_data
7+ from ietf .meeting .models import Meeting , Session , ResourceAssociation
8+ from ietf .meeting .test_data import make_meeting_test_data
89from ietf .utils .mail import outbox , empty_outbox
10+ from ietf .utils .test_data import make_test_data
911
1012from pyquery import PyQuery
1113
1214SECR_USER = 'secretary'
1315
1416class SreqUrlTests (TestCase ):
1517 def test_urls (self ):
16- make_test_data ()
18+ make_meeting_test_data ()
1719
1820 self .client .login (username = "secretary" , password = "secretary+password" )
1921
@@ -29,7 +31,7 @@ def test_urls(self):
2931
3032class SessionRequestTestCase (TestCase ):
3133 def test_main (self ):
32- make_test_data ()
34+ make_meeting_test_data ()
3335 url = reverse ('sessions' )
3436 self .client .login (username = "secretary" , password = "secretary+password" )
3537 r = self .client .get (url )
@@ -42,20 +44,20 @@ def test_main(self):
4244class SubmitRequestCase (TestCase ):
4345 def test_submit_request (self ):
4446 make_test_data ()
45- acronym = Group .objects .all ()[ 0 ]. acronym
46- url = reverse ('sessions_new' ,kwargs = {'acronym' :acronym })
47+ group = Group .objects .get ( acronym = 'mars' )
48+ url = reverse ('sessions_new' ,kwargs = {'acronym' :group . acronym })
4749 post_data = {'num_session' :'1' ,
4850 'length_session1' :'3600' ,
4951 'attendees' :'10' ,
5052 'conflict1' :'' ,
5153 'comments' :'need projector' }
5254 self .client .login (username = "secretary" , password = "secretary+password" )
5355 r = self .client .post (url ,post_data )
54- self .assertEqual ( r . status_code , 302 )
56+ self .assertRedirects ( r , reverse ( 'sessions_confirm' , kwargs = { 'acronym' : group . acronym }) )
5557
5658 def test_submit_request_invalid (self ):
5759 make_test_data ()
58- group = Group .objects .filter ( type = 'wg' ). first ( )
60+ group = Group .objects .get ( acronym = 'mars' )
5961 url = reverse ('sessions_new' ,kwargs = {'acronym' :group .acronym })
6062 post_data = {'num_session' :'2' ,
6163 'length_session1' :'3600' ,
@@ -69,9 +71,42 @@ def test_submit_request_invalid(self):
6971 self .assertEqual (len (q ('#session-request-form' )),1 )
7072 self .assertTrue ('You must enter a length for all sessions' in unicontent (r ))
7173
74+ def test_request_notification (self ):
75+ make_test_data ()
76+ meeting = Meeting .objects .filter (type = 'ietf' ).first ()
77+ group = Group .objects .get (acronym = 'ames' )
78+ ad = group .parent .role_set .filter (name = 'ad' ).first ().person
79+ resource = ResourceAssociation .objects .first ()
80+ url = reverse ('ietf.secr.sreq.views.new' ,kwargs = {'acronym' :group .acronym })
81+ confirm_url = reverse ('sessions_confirm' ,kwargs = {'acronym' :group .acronym })
82+ len_before = len (outbox )
83+ post_data = {'num_session' :'1' ,
84+ 'length_session1' :'3600' ,
85+ 'attendees' :'10' ,
86+ 'bethere' :str (ad .pk ),
87+ 'conflict1' :'' ,
88+ 'comments' :'' ,
89+ 'resources' : resource .pk }
90+ self .client .login (username = "ameschairman" , password = "ameschairman+password" )
91+ # submit
92+ r = self .client .post (url ,post_data )
93+ self .assertRedirects (r , confirm_url )
94+ # confirm
95+ r = self .client .post (confirm_url ,{'submit' :'Submit' })
96+ self .assertRedirects (r , reverse ('sessions' ))
97+ self .assertEqual (len (outbox ),len_before + 1 )
98+ notification = outbox [- 1 ]
99+ notification_payload = unicode (notification .get_payload (decode = True ),"utf-8" ,"replace" )
100+ session = Session .objects .get (meeting = meeting ,group = group )
101+ self .assertEqual (session .resources .count (),1 )
102+ self .assertEqual (session .people_constraints .count (),1 )
103+ resource = session .resources .first ()
104+ self .assertTrue (resource .desc in notification_payload )
105+ self .assertTrue (ad .ascii_name () in notification_payload )
106+
72107class LockAppTestCase (TestCase ):
73108 def test_edit_request (self ):
74- meeting = make_test_data ()
109+ meeting = make_meeting_test_data ()
75110 meeting .session_request_lock_message = 'locked'
76111 meeting .save ()
77112 group = Group .objects .get (acronym = 'mars' )
@@ -83,7 +118,7 @@ def test_edit_request(self):
83118 self .assertEqual (len (q (':disabled[name="submit"]' )), 1 )
84119
85120 def test_view_request (self ):
86- meeting = make_test_data ()
121+ meeting = make_meeting_test_data ()
87122 meeting .session_request_lock_message = 'locked'
88123 meeting .save ()
89124 group = Group .objects .get (acronym = 'mars' )
@@ -95,7 +130,7 @@ def test_view_request(self):
95130 self .assertEqual (len (q (':disabled[name="edit"]' )), 1 )
96131
97132 def test_new_request (self ):
98- meeting = make_test_data ()
133+ meeting = make_meeting_test_data ()
99134 meeting .session_request_lock_message = 'locked'
100135 meeting .save ()
101136 group = Group .objects .get (acronym = 'mars' )
@@ -121,8 +156,7 @@ class EditRequestCase(TestCase):
121156class NotMeetingCase (TestCase ):
122157
123158 def test_not_meeting (self ):
124-
125- make_test_data ()
159+ make_meeting_test_data ()
126160 group = Group .objects .get (acronym = 'mars' )
127161 url = reverse ('sessions_no_session' ,kwargs = {'acronym' :group .acronym })
128162 self .client .login (username = "secretary" , password = "secretary+password" )
0 commit comments