Ignore:
Timestamp:
20 Sep 2012, 08:49:37 (12 years ago)
Author:
uli
Message:

Merge changes from update branch (includes trunk changes until r9107).

Location:
main/waeup.kofa/branches/uli-zc-async
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/branches/uli-zc-async

  • main/waeup.kofa/branches/uli-zc-async/src/waeup/kofa/applicants/tests/test_browser.py

    r8778 r9209  
    2323import tempfile
    2424import grok
     25from datetime import datetime
    2526from StringIO import StringIO
    2627from datetime import datetime, date, timedelta
     
    4647PH_LEN = 2059  # Length of placeholder file
    4748
     49session_1 = datetime.now().year - 2
     50container_name_1 = u'app%s' % session_1
     51session_2 = datetime.now().year - 1
     52container_name_2 = u'app%s' % session_2
     53
    4854class ApplicantsFullSetup(FunctionalTestCase):
    4955    # A test case that only contains a setup and teardown
     
    8086        self.manage_root_path = self.root_path + '/@@manage'
    8187        self.add_container_path = self.root_path + '/@@add'
    82         self.container_path = 'http://localhost/app/applicants/app2009'
     88        self.container_path = 'http://localhost/app/applicants/%s' % container_name_1
    8389        self.manage_container_path = self.container_path + '/@@manage'
    8490
    8591        # Add an applicants container
    8692        applicantscontainer = ApplicantsContainer()
    87         applicantscontainer.code = u'app2009'
     93        applicantscontainer.code = container_name_1
    8894        applicantscontainer.prefix = 'app'
    89         applicantscontainer.year = 2009
    90         applicantscontainer.title = u'This is the app2009 container'
     95        applicantscontainer.year = session_1
     96        applicantscontainer.title = u'This is the %s container' % container_name_1
    9197        applicantscontainer.application_category = 'basic'
    9298        applicantscontainer.mode = 'create'
     
    95101        applicantscontainer.startdate = datetime.now(pytz.utc) - delta
    96102        applicantscontainer.enddate = datetime.now(pytz.utc) + delta
    97         self.app['applicants']['app2009'] = applicantscontainer
    98         self.applicantscontainer = self.app['applicants']['app2009']
     103        self.app['applicants'][container_name_1] = applicantscontainer
     104        self.applicantscontainer = self.app['applicants'][container_name_1]
    99105
    100106        # Populate university
     
    135141        self.applicant.reg_number = u'1234'
    136142        self.applicant.course1 = certificate
    137         app['applicants']['app2009'].addApplicant(self.applicant)
     143        app['applicants'][container_name_1].addApplicant(self.applicant)
    138144        IUserAccount(
    139             self.app['applicants']['app2009'][
     145            self.app['applicants'][container_name_1][
    140146            self.applicant.application_number]).setPassword('apwd')
    141147        self.manage_path = 'http://localhost/app/applicants/%s/%s/%s' % (
    142             'app2009', self.applicant.application_number, 'manage')
     148            container_name_1, self.applicant.application_number, 'manage')
    143149        self.edit_path = 'http://localhost/app/applicants/%s/%s/%s' % (
    144             'app2009', self.applicant.application_number, 'edit')
     150            container_name_1, self.applicant.application_number, 'edit')
    145151        self.view_path = 'http://localhost/app/applicants/%s/%s' % (
    146             'app2009', self.applicant.application_number)
     152            container_name_1, self.applicant.application_number)
    147153
    148154    def login(self):
     
    303309            'There were errors' in self.browser.contents)
    304310        self.browser.getControl(name="form.prefix").value = ['app']
    305         self.browser.getControl(name="form.year").value = ['2010']
     311        self.browser.getControl(name="form.year").value = [str(session_2)]
    306312        self.browser.getControl(name="form.mode").value = ['create']
    307313        self.browser.getControl(
     
    317323        self.browser.open(self.add_container_path)
    318324        self.browser.getControl(name="form.prefix").value = ['app']
    319         self.browser.getControl(name="form.year").value = ['2010']
     325        self.browser.getControl(name="form.year").value = [str(session_2)]
    320326        self.browser.getControl(name="form.mode").value = ['create']
    321327        self.browser.getControl(
     
    326332        self.browser.open(self.manage_root_path)
    327333        ctrl = self.browser.getControl(name='val_id')
    328         ctrl.getControl(value='app2010').selected = True
     334        ctrl.getControl(value=container_name_2).selected = True
    329335        self.browser.getControl("Remove selected", index=0).click()
    330336        self.assertTrue('Successfully removed:' in self.browser.contents)
    331337        self.browser.open(self.add_container_path)
    332338        self.browser.getControl(name="form.prefix").value = ['app']
    333         self.browser.getControl(name="form.year").value = ['2010']
     339        self.browser.getControl(name="form.year").value = [str(session_2)]
    334340        self.browser.getControl(name="form.mode").value = ['create']
    335341        #self.browser.getControl(name="form.ac_prefix").value = ['APP']
     
    337343            name="form.application_category").value = ['basic']
    338344        self.browser.getControl("Add applicants container").click()
    339         del self.app['applicants']['app2010']
     345        del self.app['applicants'][container_name_2]
    340346        ctrl = self.browser.getControl(name='val_id')
    341         ctrl.getControl(value='app2010').selected = True
     347        ctrl.getControl(value=container_name_2).selected = True
    342348        self.browser.getControl("Remove selected", index=0).click()
    343349        self.assertMatches('...Could not delete...', self.browser.contents)
     
    465471        self.browser.open(self.slip_path)
    466472        self.assertTrue(
    467             'Please pay before trying to download the application slip.'
     473            'Please pay and submit before trying to download the application slip.'
    468474            in self.browser.contents)
    469475        # If applicant is in correct state the pdf slip can be opened.
    470         IWorkflowState(self.applicant).setState('paid')
     476        IWorkflowState(self.applicant).setState('submitted')
    471477        self.browser.open(self.manage_path)
    472478        self.browser.getLink("Download application slip").click()
     
    493499            self.browser.headers['content-length'], str(PH_LEN))
    494500
     501    def test_applicant_login(self):
     502        self.applicant.suspended = True
     503        self.login()
     504        self.assertTrue(
     505            'You entered invalid credentials.' in self.browser.contents)
     506        self.applicant.suspended = False
     507        self.browser.getControl("Login").click()
     508        self.assertTrue(
     509            'You logged in.' in self.browser.contents)
     510
    495511    def test_applicant_access(self):
    496512        # Applicants can edit their record
    497513        self.browser.open(self.login_path)
    498514        self.login()
     515        self.assertTrue(
     516            'You logged in.' in self.browser.contents)
    499517        self.browser.open(self.edit_path)
    500518        self.assertTrue(self.browser.url != self.login_path)
     
    699717            in self.browser.contents)
    700718        configuration = SessionConfiguration()
    701         configuration.academic_session = 2009
     719        configuration.academic_session = session_1
    702720        configuration.application_fee = 200.0
    703721        self.app['configuration'].addSessionConfiguration(configuration)
     
    727745        payment_id = self.applicant.keys()[0]
    728746        payment = self.applicant[payment_id]
    729         self.assertEqual(payment.p_item,'This is the app2009 container')
    730         self.assertEqual(payment.p_session,2009)
     747        self.assertEqual(payment.p_item,'This is the %s container' % container_name_1)
     748        self.assertEqual(payment.p_session, session_1)
    731749        self.assertEqual(payment.p_category,'application')
    732750        self.assertEqual(payment.amount_auth,200.0)
     
    821839        self.browser.getControl("Final Submit").click()
    822840        self.assertTrue(
    823             '... submitted ...' in self.browser.contents)
     841            'Application submitted' in self.browser.contents)
    824842        # ... or allow submission after deadline.
    825843        IWorkflowState(self.applicant).setState('paid')
     
    830848        self.browser.getControl("Final Submit").click()
    831849        self.assertTrue(
    832             '... submitted ...' in self.browser.contents)
     850            'Application submitted' in self.browser.contents)
    833851        self.browser.goBack(count=1)
    834852        self.browser.getControl("Save").click()
     
    917935        self.browser.getControl(name="form.phone.area").value = '555'
    918936        self.browser.getControl(name="form.phone.ext").value = '6666666'
    919         self.browser.getControl("Get login credentials").click()
     937        self.browser.getControl("Send login credentials").click()
    920938        self.assertEqual(self.browser.url,
    921939            self.container_path + '/registration_complete?email=xx%40yy.zz')
     
    944962        self.browser.getControl(name="form.reg_number").value = 'anynumber'
    945963        self.browser.getControl(name="form.email").value = 'xx@yy.zz'
    946         self.browser.getControl("Get login credentials").click()
     964        self.browser.getControl("Send login credentials").click()
    947965        self.assertTrue('No application record found.'
    948966            in self.browser.contents)
     
    954972        self.browser.getControl(name="form.reg_number").value = '1234'
    955973        self.browser.getControl(name="form.email").value = 'xx@yy.zz'
    956         self.browser.getControl("Get login credentials").click()
     974        self.browser.getControl("Send login credentials").click()
    957975        self.assertTrue('An error occurred.' in self.browser.contents)
    958976        # Let's set this attribute manually
     
    963981        self.browser.getControl(name="form.reg_number").value = '1234'
    964982        self.browser.getControl(name="form.email").value = 'xx@yy.zz'
    965         self.browser.getControl("Get login credentials").click()
     983        self.browser.getControl("Send login credentials").click()
    966984        # Anonymous is not informed that firstname verification failed.
    967985        # It seems that the record doesn't exist.
     
    973991        self.browser.getControl(name="form.firstname").value = 'John'
    974992        self.browser.getControl(name="form.reg_number").value = '1234'
    975         self.browser.getControl("Get login credentials").click()
     993        self.browser.getControl("Send login credentials").click()
    976994        self.assertTrue('Your password has already been set and used.'
    977995            in self.browser.contents)
    978996        #IUserAccount(
    979         #    self.app['applicants']['app2009'][
     997        #    self.app['applicants'][container_name_1][
    980998        #    self.applicant.application_number]).context.password = None
    981999        # Even without unsetting the password we can re-register if state
     
    9871005        self.browser.getControl(name="form.reg_number").value = '1234'
    9881006        self.browser.getControl(name="form.email").value = 'new@yy.zz'
    989         self.browser.getControl("Get login credentials").click()
     1007        self.browser.getControl("Send login credentials").click()
    9901008        # Yeah, we succeded ...
    9911009        self.assertTrue('Your registration was successful.'
     
    10031021        self.browser.getControl(name="form.identifier").value = '1234'
    10041022        self.browser.getControl(name="form.email").value = 'aa@aa.ng'
    1005         self.browser.getControl("Get login credentials").click()
     1023        self.browser.getControl("Send login credentials").click()
    10061024        self.assertTrue('No record found' in self.browser.contents)
    10071025        self.applicant.email = 'aa@aa.ng'
     
    10111029        self.browser.getControl(name="form.identifier").value = '1234'
    10121030        self.browser.getControl(name="form.email").value = 'aa@aa.ng'
    1013         self.browser.getControl("Get login credentials").click()
     1031        self.browser.getControl("Send login credentials").click()
    10141032        self.assertTrue(
    10151033            'An email with your user name and password has been sent'
Note: See TracChangeset for help on using the changeset viewer.