1+ import json
12import os
23import shutil
34import datetime
@@ -349,67 +350,67 @@ def check_interim_tabs(self, url):
349350 # no logged in - no tabs
350351 r = self .client .get (url )
351352 q = PyQuery (r .content )
352- self .assertEqual (len (q ("ul.nav-tabs" )),0 )
353+ self .assertEqual (len (q ("ul.nav-tabs" )), 0 )
353354 # plain user - no tabs
354355 username = "plain"
355- self .client .login (username = username , password = username + "+password" )
356+ self .client .login (username = username , password = username + "+password" )
356357 r = self .client .get (url )
357358 q = PyQuery (r .content )
358- self .assertEqual (len (q ("ul.nav-tabs" )),0 )
359+ self .assertEqual (len (q ("ul.nav-tabs" )), 0 )
359360 self .client .logout ()
360361 # privileged user
361362 username = "ad"
362- self .client .login (username = username , password = username + "+password" )
363+ self .client .login (username = username , password = username + "+password" )
363364 r = self .client .get (url )
364365 q = PyQuery (r .content )
365- self .assertEqual (len (q ("a:contains('Pending')" )),1 )
366- self .assertEqual (len (q ("a:contains('Announce')" )),0 )
366+ self .assertEqual (len (q ("a:contains('Pending')" )), 1 )
367+ self .assertEqual (len (q ("a:contains('Announce')" )), 0 )
367368 self .client .logout ()
368369 # secretariat
369370 username = "secretary"
370- self .client .login (username = username , password = username + "+password" )
371+ self .client .login (username = username , password = username + "+password" )
371372 r = self .client .get (url )
372373 q = PyQuery (r .content )
373- self .assertEqual (len (q ("a:contains('Pending')" )),1 )
374- self .assertEqual (len (q ("a:contains('Announce')" )),1 )
374+ self .assertEqual (len (q ("a:contains('Pending')" )), 1 )
375+ self .assertEqual (len (q ("a:contains('Announce')" )), 1 )
375376 self .client .logout ()
376377
377378 def test_interim_announce (self ):
378379 make_meeting_test_data ()
379380 url = urlreverse ("ietf.meeting.views.interim_announce" )
380- meeting = Meeting .objects .filter (type = 'interim' ,session__group__acronym = 'mars' ).first ()
381+ meeting = Meeting .objects .filter (type = 'interim' , session__group__acronym = 'mars' ).first ()
381382 session = meeting .session_set .first ()
382383 session .status = SessionStatusName .objects .get (slug = 'scheda' )
383384 session .save ()
384- login_testing_unauthorized (self ,"secretary" ,url )
385+ login_testing_unauthorized (self , "secretary" , url )
385386 r = self .client .get (url )
386387 self .assertEqual (r .status_code , 200 )
387388 self .assertTrue (meeting .number in r .content )
388389
389390 def test_interim_send_announcement (self ):
390391 make_meeting_test_data ()
391- meeting = Meeting .objects .filter (type = 'interim' ,session__status = 'apprw' ,session__group__acronym = 'mars' ).first ()
392- url = urlreverse ("ietf.meeting.views.interim_send_announcement" , kwargs = {'number' :meeting .number })
393- login_testing_unauthorized (self ,"secretary" ,url )
392+ meeting = Meeting .objects .filter (type = 'interim' , session__status = 'apprw' , session__group__acronym = 'mars' ).first ()
393+ url = urlreverse ("ietf.meeting.views.interim_send_announcement" , kwargs = {'number' : meeting .number })
394+ login_testing_unauthorized (self , "secretary" , url )
394395 r = self .client .get (url )
395396 self .assertEqual (r .status_code , 200 )
396397 initial = r .context ['form' ].initial
397398 # send announcement
398399 len_before = len (outbox )
399- r = self .client .post (url ,initial )
400- self .assertRedirects (r ,urlreverse ('ietf.meeting.views.interim_announce' ))
401- self .assertEqual (len (outbox ),len_before + 1 )
400+ r = self .client .post (url , initial )
401+ self .assertRedirects (r , urlreverse ('ietf.meeting.views.interim_announce' ))
402+ self .assertEqual (len (outbox ), len_before + 1 )
402403 self .assertTrue ('WG Virtual Meeting' in outbox [- 1 ]['Subject' ])
403404
404405 def test_interim_approve (self ):
405406 make_meeting_test_data ()
406- meeting = Meeting .objects .filter (type = 'interim' ,session__status = 'apprw' ,session__group__acronym = 'mars' ).first ()
407- url = urlreverse ('ietf.meeting.views.interim_request_details' ,kwargs = {'number' :meeting .number })
408- login_testing_unauthorized (self ,"secretary" ,url )
409- r = self .client .post (url ,{'approve' :'approve' })
410- self .assertRedirects (r ,urlreverse ('ietf.meeting.views.interim_send_announcement' ,kwargs = {'number' :meeting .number }))
407+ meeting = Meeting .objects .filter (type = 'interim' , session__status = 'apprw' , session__group__acronym = 'mars' ).first ()
408+ url = urlreverse ('ietf.meeting.views.interim_request_details' , kwargs = {'number' : meeting .number })
409+ login_testing_unauthorized (self , "secretary" , url )
410+ r = self .client .post (url , {'approve' : 'approve' })
411+ self .assertRedirects (r , urlreverse ('ietf.meeting.views.interim_send_announcement' , kwargs = {'number' : meeting .number }))
411412 for session in meeting .session_set .all ():
412- self .assertEqual (session .status .slug ,'scheda' )
413+ self .assertEqual (session .status .slug , 'scheda' )
413414
414415 def test_upcoming (self ):
415416 make_meeting_test_data ()
@@ -478,8 +479,8 @@ def test_interim_request_options(self):
478479 r = self .client .get ("/meeting/interim/request/" )
479480 self .assertEqual (r .status_code , 200 )
480481 q = PyQuery (r .content )
481- self .assertEqual (Group .objects .filter (type__in = ('wg' ,'rg' ),state = 'active' ).count (),
482- len (q ("#id_group option" )) - 1 ) # -1 for options placeholder
482+ self .assertEqual (Group .objects .filter (type__in = ('wg' , 'rg' ), state__in = ( 'active' , 'proposed' ) ).count (),
483+ len (q ("#id_group option" )) - 1 ) # -1 for options placeholder
483484
484485
485486 def test_interim_request_single (self ):
@@ -882,4 +883,29 @@ def test_send_interim_minutes_reminder(self):
882883 length_before = len (outbox )
883884 send_interim_minutes_reminder (meeting = meeting )
884885 self .assertEqual (len (outbox ),length_before + 1 )
885- self .assertTrue ('Action Required: Minutes' in outbox [- 1 ]['Subject' ])
886+ self .assertTrue ('Action Required: Minutes' in outbox [- 1 ]['Subject' ])
887+
888+
889+ class AjaxTests (TestCase ):
890+ def test_ajax_get_utc (self ):
891+ # test bad queries
892+ url = urlreverse ('ietf.meeting.views.ajax_get_utc' ) + "?date=2016-1-1&time=badtime&timezone=UTC"
893+ r = self .client .get (url )
894+ self .assertEqual (r .status_code , 200 )
895+ data = json .loads (r .content )
896+ self .assertEqual (data ["error" ], True )
897+ url = urlreverse ('ietf.meeting.views.ajax_get_utc' ) + "?date=2016-1-1&time=25:99&timezone=UTC"
898+ r = self .client .get (url )
899+ self .assertEqual (r .status_code , 200 )
900+ data = json .loads (r .content )
901+ self .assertEqual (data ["error" ], True )
902+ # test good query
903+ url = urlreverse ('ietf.meeting.views.ajax_get_utc' ) + "?date=2016-1-1&time=12:00&timezone=US/Pacific"
904+ r = self .client .get (url )
905+ self .assertEqual (r .status_code , 200 )
906+ data = json .loads (r .content )
907+ self .assertTrue ('timezone' in data )
908+ self .assertTrue ('time' in data )
909+ self .assertTrue ('utc' in data )
910+ self .assertTrue ('error' not in data )
911+ self .assertEqual (data ['utc' ], '20:00' )
0 commit comments