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/students/tests/test_browser.py

    r8779 r9209  
    118118        self.manage_clearance_path = self.student_path + '/manage_clearance'
    119119        self.edit_personal_path = self.student_path + '/edit_personal'
     120        self.manage_personal_path = self.student_path + '/manage_personal'
    120121        self.studycourse_path = self.student_path + '/studycourse'
    121122        self.payments_path = self.student_path + '/payments'
     
    170171        self.app['faculties']['fac1']['dep1'].courses.addCourse(
    171172            self.course)
    172         self.app['faculties']['fac1']['dep1'].certificates['CERT1'].addCourseRef(
     173        self.app['faculties']['fac1']['dep1'].certificates['CERT1'].addCertCourse(
    173174            self.course, level=100)
    174175
     
    403404    layer = FunctionalLayer
    404405
     406    def test_student_properties(self):
     407        self.student['studycourse'].current_level = 100
     408        self.assertEqual(self.student.current_level, 100)
     409        self.student['studycourse'].current_session = 2011
     410        self.assertEqual(self.student.current_session, 2011)
     411        self.student['studycourse'].current_verdict = 'A'
     412        self.assertEqual(self.student.current_verdict, 'A')
     413        return
     414
    405415    def test_basic_auth(self):
    406416        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     
    454464        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    455465        self.assertEqual(self.browser.url, self.personal_path)
     466        self.browser.getLink("Manage").click()
     467        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     468        self.assertEqual(self.browser.url, self.manage_personal_path)
     469        self.browser.open(self.personal_path)
    456470        self.browser.getLink("Edit").click()
    457471        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     
    474488        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    475489        self.assertEqual(self.browser.url, self.history_path)
    476         self.assertMatches('...Student admitted by Manager...',
     490        self.assertMatches('...Admitted by Manager...',
    477491                           self.browser.contents)
    478492        # Only the Application Slip does not exist
     
    754768        self.assertEqual(student['studycourse'].current_session, 2005) # +1
    755769        self.assertEqual(student['studycourse'].current_level, 200) # +100
    756         self.assertEqual(student['studycourse'].current_verdict, 'NY') # NY = not set
     770        self.assertEqual(student['studycourse'].current_verdict, '0') # 0 = Zero = not set
    757771        self.assertEqual(student['studycourse'].previous_verdict, 'A')
    758772        self.browser.getControl(name="transition").value = ['register_courses']
     
    762776        self.browser.getControl(name="transition").value = ['return']
    763777        self.browser.getControl("Save").click()
     778        return
     779
     780    def test_manage_pg_workflow(self):
     781        # Managers can pass through the whole workflow
     782        IWorkflowState(self.student).setState('school fee paid')
     783        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     784        student = self.app['students'][self.student_id]
     785        self.browser.open(self.manage_student_path)
     786        self.assertTrue('<option value="reset6">' in self.browser.contents)
     787        self.assertTrue('<option value="register_courses">' in self.browser.contents)
     788        self.assertTrue('<option value="reset5">' in self.browser.contents)
     789        self.certificate.study_mode = 'pg_ft'
     790        self.browser.open(self.manage_student_path)
     791        self.assertFalse('<option value="reset6">' in self.browser.contents)
     792        self.assertFalse('<option value="register_courses">' in self.browser.contents)
     793        self.assertTrue('<option value="reset5">' in self.browser.contents)
    764794        return
    765795
     
    776806        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    777807        self.browser.open(datacenter_path)
    778         self.browser.getLink('Upload CSV file').click()
     808        self.browser.getLink('Upload data').click()
    779809        filecontents = StringIO(open('students.csv', 'rb').read())
    780810        filewidget = self.browser.getControl(name='uploadfile:file')
    781811        filewidget.add_file(filecontents, 'text/plain', 'students.csv')
    782812        self.browser.getControl(name='SUBMIT').click()
    783         self.browser.getLink('Batch processing').click()
     813        self.browser.getLink('Process data').click()
    784814        button = lookup_submit_value(
    785815            'select', 'students_zope.mgr.csv', self.browser)
     
    802832""")
    803833        self.browser.open(datacenter_path)
    804         self.browser.getLink('Upload CSV file').click()
     834        self.browser.getLink('Upload data').click()
    805835        filecontents = StringIO(open('studycourses.csv', 'rb').read())
    806836        filewidget = self.browser.getControl(name='uploadfile:file')
    807837        filewidget.add_file(filecontents, 'text/plain', 'studycourses.csv')
    808838        self.browser.getControl(name='SUBMIT').click()
    809         self.browser.getLink('Batch processing').click()
     839        self.browser.getLink('Process data').click()
    810840        button = lookup_submit_value(
    811841            'select', 'studycourses_zope.mgr.csv', self.browser)
     
    917947        self.assertTrue('clearance started' in self.browser.contents)
    918948        self.browser.open(self.history_path)
    919         self.assertTrue("Reset to 'clearance' by My Public Name" in
     949        self.assertTrue("Reset to 'clearance started' by My Public Name" in
    920950            self.browser.contents)
    921951        IWorkflowInfo(self.student).fireTransition('request_clearance')
     
    946976        self.app['users'].addUser('mrsadvise', 'mrsadvisesecret')
    947977        self.app['users']['mrsadvise'].email = 'mradvise@foo.ng'
    948         self.app['users']['mrsadvise'].title = 'Helen Procter'
     978        self.app['users']['mrsadvise'].title = u'Helen Procter'
    949979        # Assign local CourseAdviser100 role for a certificate
    950980        cert = self.app['faculties']['fac1']['dep1'].certificates['CERT1']
     
    9971027        # the 100L CA does see the 'Validate' button
    9981028        self.browser.open(L110_student_path)
    999         self.assertFalse('Validate' in self.browser.contents)
     1029        self.assertFalse('Validate courses' in self.browser.contents)
    10001030        IWorkflowInfo(self.student).fireTransition('register_courses')
    10011031        self.browser.open(L110_student_path)
    1002         self.assertFalse('Validate' in self.browser.contents)
     1032        self.assertFalse('Validate courses' in self.browser.contents)
    10031033        self.student['studycourse'].current_level = 110
    10041034        self.browser.open(L110_student_path)
    1005         self.assertTrue('Validate' in self.browser.contents)
     1035        self.assertTrue('Validate courses' in self.browser.contents)
    10061036        # ... but a 100L CA does not see the button on other levels
    10071037        studylevel2 = StudentStudyLevel()
     
    10111041        L200_student_path = self.studycourse_path + '/200'
    10121042        self.browser.open(L200_student_path)
    1013         self.assertFalse('Validate' in self.browser.contents)
     1043        self.assertFalse('Validate courses' in self.browser.contents)
    10141044        self.browser.open(L110_student_path)
    10151045        self.browser.getLink("Validate courses").click()
    10161046        self.assertTrue('Course list has been validated' in self.browser.contents)
    10171047        self.assertTrue('courses validated' in self.browser.contents)
     1048        self.assertEqual(self.student['studycourse']['110'].validated_by,
     1049            'Helen Procter')
     1050        self.assertMatches(
     1051            '<YYYY-MM-DD hh:mm:ss>',
     1052            self.student['studycourse']['110'].validation_date.strftime(
     1053                "%Y-%m-%d %H:%M:%S"))
    10181054        self.browser.getLink("Reject courses").click()
    10191055        self.assertTrue('Course list request has been annulled.'
     
    10231059            '/contactstudent?subject=%s' % urlmessage)
    10241060        self.assertTrue('school fee paid' in self.browser.contents)
     1061        self.assertTrue(self.student['studycourse']['110'].validated_by is None)
     1062        self.assertTrue(self.student['studycourse']['110'].validation_date is None)
    10251063        IWorkflowInfo(self.student).fireTransition('register_courses')
    10261064        self.browser.open(L110_student_path)
     
    11421180        # and can perform actions
    11431181        IWorkflowInfo(self.student).fireTransition('admit')
     1182        # Students can't login if their account is suspended/deactivated
     1183        self.student.suspended = True
    11441184        self.browser.open(self.login_path)
    11451185        self.browser.getControl(name="form.login").value = self.student_id
    11461186        self.browser.getControl(name="form.password").value = 'spwd'
    11471187        self.browser.getControl("Login").click()
    1148         # Student can upload a passport picture
     1188        self.assertTrue(
     1189            'Your account has been deactivated.' in self.browser.contents)
     1190        self.student.suspended = False
     1191        self.browser.getControl("Login").click()
     1192        self.assertTrue(
     1193            'You logged in.' in self.browser.contents)
     1194        # Admitted student can upload a passport picture
    11491195        self.browser.open(self.student_path + '/change_portrait')
    11501196        ctrl = self.browser.getControl(name='passportuploadedit')
     
    11571203            '<img align="middle" height="125px" src="passport.jpg" />'
    11581204            in self.browser.contents)
     1205        # Students can open admission letter
     1206        self.browser.getLink("Base Data").click()
     1207        self.browser.getLink("Download admission letter").click()
     1208        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     1209        self.assertEqual(self.browser.headers['Content-Type'], 'application/pdf')
    11591210        # Student can view the clearance data
     1211        self.browser.open(self.student_path)
    11601212        self.browser.getLink("Clearance Data").click()
    11611213        # Student can't open clearance edit form before starting clearance
     
    11701222        self.assertMatches('...Not all required fields filled...',
    11711223                           self.browser.contents)
    1172         self.student.email = 'aa@aa.ng'
     1224        self.browser.open(self.student_path + '/edit_base')
     1225        self.browser.getControl(name="form.email").value = 'aa@aa.ng'
     1226        self.browser.getControl("Save").click()
    11731227        self.browser.open(self.student_path + '/start_clearance')
    11741228        self.browser.getControl(name="ac_series").value = '3'
     
    11851239        # Set the correct owner
    11861240        self.existing_clrac.owner = self.student_id
     1241        # clr_code might be set (and thus returns None) due importing
     1242        # an empty clr_code column.
     1243        self.student.clr_code = None
    11871244        self.browser.getControl("Start clearance now").click()
    11881245        self.assertMatches('...Clearance process has been started...',
     
    12351292        self.browser.getControl("Create course list now").click()
    12361293        self.browser.getLink("100").click()
    1237         self.browser.getLink("Add and remove courses").click()
     1294        self.browser.getLink("Edit course list").click()
    12381295        self.browser.getControl("Add course ticket").click()
    12391296        self.browser.getControl(name="form.course").value = ['COURSE1']
     
    12481305        self.browser.getControl("Create course list now").click()
    12491306        self.browser.getLink("200").click()
    1250         self.browser.getLink("Add and remove courses").click()
     1307        self.browser.getLink("Edit course list").click()
    12511308        self.browser.getControl("Add course ticket").click()
    12521309        self.browser.getControl(name="form.course").value = ['COURSE1']
     
    12861343        self.assertEqual(self.student.state, 'courses registered')
    12871344        return
     1345
     1346    def test_student_clearance_wo_clrcode(self):
     1347        IWorkflowState(self.student).setState('clearance started')
     1348        self.browser.open(self.login_path)
     1349        self.browser.getControl(name="form.login").value = self.student_id
     1350        self.browser.getControl(name="form.password").value = 'spwd'
     1351        self.browser.getControl("Login").click()
     1352        self.student.clearance_locked = False
     1353        self.browser.open(self.edit_clearance_path)
     1354        self.browser.getControl(name="form.date_of_birth").value = '09/10/1961'
     1355        self.browser.getControl("Save and request clearance").click()
     1356        self.assertMatches('...Clearance has been requested...',
     1357                           self.browser.contents)
    12881358
    12891359    def test_manage_payments(self):
     
    15161586        # The new SFE-0 pin can be used for starting new session
    15171587        self.browser.open(self.studycourse_path)
    1518         self.browser.getLink('Start session').click()
     1588        self.browser.getLink('Start new session').click()
    15191589        pin = self.app['accesscodes']['SFE-0'].keys()[0]
    15201590        parts = pin.split('-')[1:]
     
    15281598        return
    15291599
    1530     def test_postgraduate_payments(self):
     1600    def test_student_previous_payments(self):
     1601        configuration = createObject('waeup.SessionConfiguration')
     1602        configuration.academic_session = 2000
     1603        configuration.clearance_fee = 3456.0
     1604        configuration.booking_fee = 123.4
     1605        self.student['studycourse'].entry_session = 2002
     1606        self.app['configuration'].addSessionConfiguration(configuration)
     1607        configuration2 = createObject('waeup.SessionConfiguration')
     1608        configuration2.academic_session = 2003
     1609        configuration2.clearance_fee = 3456.0
     1610        configuration2.booking_fee = 123.4
     1611        self.student['studycourse'].entry_session = 2002
     1612        self.app['configuration'].addSessionConfiguration(configuration2)
     1613        # Login
     1614        self.browser.open(self.login_path)
     1615        self.browser.getControl(name="form.login").value = self.student_id
     1616        self.browser.getControl(name="form.password").value = 'spwd'
     1617        self.browser.getControl("Login").click()
     1618
     1619        # Students can add previous school fee payment tickets in any state.
     1620        IWorkflowState(self.student).setState('courses registered')
     1621        self.browser.open(self.payments_path)
     1622        self.browser.getControl("Add online payment ticket").click()
     1623        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     1624        self.browser.getControl("Create ticket").click()
     1625
     1626        # Amount cannot be determined since the state is not
     1627        # 'cleared' or 'returning'
     1628        self.assertMatches('...Amount could not be determined...',
     1629                           self.browser.contents)
     1630        self.assertMatches('...Would you like to pay for a previous session?...',
     1631                           self.browser.contents)
     1632
     1633        # Previous session payment form is provided
     1634        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     1635        self.browser.getControl(name="form.p_session").value = ['2000']
     1636        self.browser.getControl(name="form.p_level").value = ['300']
     1637        self.browser.getControl("Create ticket").click()
     1638        self.assertMatches('...The previous session must not fall below...',
     1639                           self.browser.contents)
     1640        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     1641        self.browser.getControl(name="form.p_session").value = ['2004']
     1642        self.browser.getControl(name="form.p_level").value = ['300']
     1643        self.browser.getControl("Create ticket").click()
     1644        self.assertMatches('...This is not a previous session...',
     1645                           self.browser.contents)
     1646        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     1647        self.browser.getControl(name="form.p_session").value = ['2003']
     1648        self.browser.getControl(name="form.p_level").value = ['300']
     1649        self.browser.getControl("Create ticket").click()
     1650        self.assertMatches('...ticket created...',
     1651                           self.browser.contents)
     1652        ctrl = self.browser.getControl(name='val_id')
     1653        value = ctrl.options[0]
     1654        self.browser.getLink(value).click()
     1655        self.assertMatches('...Amount Authorized...',
     1656                           self.browser.contents)
     1657        self.assertEqual(self.student['payments'][value].amount_auth, 20000.0)
     1658
     1659        # Payment session is properly set
     1660        self.assertEqual(self.student['payments'][value].p_session, 2003)
     1661        self.assertEqual(self.student['payments'][value].p_level, 300)
     1662
     1663        # We simulate the approval
     1664        self.browser.open(self.browser.url + '/fake_approve')
     1665        self.assertMatches('...Payment approved...',
     1666                          self.browser.contents)
     1667
     1668        # No AC has been created
     1669        self.assertEqual(len(self.app['accesscodes']['SFE-0'].keys()), 0)
     1670        self.assertTrue(self.student['payments'][value].ac is None)
     1671
     1672        # Current payment flag is set False
     1673        self.assertFalse(self.student['payments'][value].p_current)
     1674        return
     1675
     1676    def test_student_postgraduate_payments(self):
    15311677        self.certificate.study_mode = 'pg_ft'
    15321678        self.certificate.start_level = 999
     
    15521698                           self.browser.contents)
    15531699        # Payment session and level are current ones.
    1554         # Postgrads have to school_fee_1.
     1700        # Postgrads have to pay school_fee_1.
    15551701        self.assertEqual(self.student['payments'][value].amount_auth, 40000.0)
    15561702        self.assertEqual(self.student['payments'][value].p_session, 2004)
     
    15651711        # The new SFE-0 pin can be used for starting session
    15661712        self.browser.open(self.studycourse_path)
    1567         self.browser.getLink('Start session').click()
     1713        self.browser.getLink('Start new session').click()
    15681714        pin = self.app['accesscodes']['SFE-0'].keys()[0]
    15691715        parts = pin.split('-')[1:]
     
    16051751        # The new SFE-1 pin can be used for starting new session
    16061752        self.browser.open(self.studycourse_path)
    1607         self.browser.getLink('Start session').click()
     1753        self.browser.getLink('Start new session').click()
    16081754        self.browser.getControl(name="ac_series").value = sfeseries
    16091755        self.browser.getControl(name="ac_number").value = sfenumber
     
    18471993        self.browser.getControl(name="form.identifier").value = '123'
    18481994        self.browser.getControl(name="form.email").value = 'aa@aa.ng'
    1849         self.browser.getControl("Get login credentials").click()
     1995        self.browser.getControl("Send login credentials").click()
    18501996        self.assertTrue('An email with' in self.browser.contents)
    1851 
    1852     def test_reindex(self):
    1853         self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    1854         self.browser.open('http://localhost/app/reindex')
    1855         self.assertTrue('No catalog name provided' in self.browser.contents)
    1856         self.browser.open('http://localhost/app/reindex?ctlg=xyz')
    1857         self.assertTrue('xyz_catalog does not exist' in self.browser.contents)
    1858         cat = queryUtility(ICatalog, name='students_catalog')
    1859         results = cat.searchResults(student_id=(None, None))
    1860         self.assertEqual(len(results),1)
    1861         cat.clear()
    1862         results = cat.searchResults(student_id=(None, None))
    1863         self.assertEqual(len(results),0)
    1864         self.browser.open('http://localhost/app/reindex?ctlg=students')
    1865         self.assertTrue('1 students re-indexed' in self.browser.contents)
    1866         results = cat.searchResults(student_id=(None, None))
    1867         self.assertEqual(len(results),1)
    18681997
    18691998    def test_change_current_mode(self):
     
    18882017        self.assertTrue('Employer' in self.browser.contents)
    18892018
     2019    def test_activate_deactivate_buttons(self):
     2020        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     2021        self.browser.open(self.student_path)
     2022        self.browser.getLink("Deactivate").click()
     2023        self.assertTrue(
     2024            'Student account has been deactivated.' in self.browser.contents)
     2025        self.assertTrue(
     2026            'Base Data (account deactivated)' in self.browser.contents)
     2027        self.assertTrue(self.student.suspended)
     2028        self.browser.getLink("Activate").click()
     2029        self.assertTrue(
     2030            'Student account has been activated.' in self.browser.contents)
     2031        self.assertFalse(
     2032            'Base Data (account deactivated)' in self.browser.contents)
     2033        self.assertFalse(self.student.suspended)
     2034        # History messages have been added ...
     2035        self.browser.getLink("History").click()
     2036        self.assertTrue(
     2037            'Student account deactivated by Manager<br />' in self.browser.contents)
     2038        self.assertTrue(
     2039            'Student account activated by Manager<br />' in self.browser.contents)
     2040        # ... and actions have been logged.
     2041        logfile = os.path.join(
     2042            self.app['datacenter'].storage, 'logs', 'students.log')
     2043        logcontent = open(logfile).read()
     2044        self.assertTrue('zope.mgr - students.browser.StudentDeactivatePage - '
     2045                        'K1000000 - account deactivated' in logcontent)
     2046        self.assertTrue('zope.mgr - students.browser.StudentActivatePage - '
     2047                        'K1000000 - account activated' in logcontent)
     2048
     2049    def test_student_transfer(self):
     2050        # Add second certificate
     2051        self.certificate2 = createObject('waeup.Certificate')
     2052        self.certificate2.code = u'CERT2'
     2053        self.certificate2.study_mode = 'ug_ft'
     2054        self.certificate2.start_level = 999
     2055        self.certificate2.end_level = 999
     2056        self.app['faculties']['fac1']['dep1'].certificates.addCertificate(
     2057            self.certificate2)
     2058
     2059        # Add study level to old study course
     2060        studylevel = createObject(u'waeup.StudentStudyLevel')
     2061        studylevel.level = 200
     2062        self.student['studycourse'].addStudentStudyLevel(
     2063            self.certificate, studylevel)
     2064
     2065        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     2066        self.browser.open(self.student_path)
     2067        self.browser.getLink("Transfer").click()
     2068        self.browser.getControl(name="form.certificate").value = ['CERT2']
     2069        self.browser.getControl(name="form.current_session").value = ['2011']
     2070        self.browser.getControl(name="form.current_level").value = ['200']
     2071        self.browser.getControl("Transfer").click()
     2072        self.assertTrue(
     2073            'Current level does not match certificate levels'
     2074            in self.browser.contents)
     2075        self.browser.getControl(name="form.current_level").value = ['999']
     2076        self.browser.getControl("Transfer").click()
     2077        self.assertTrue('Successfully transferred' in self.browser.contents)
     2078
     2079        # Add study level to new study course
     2080        studylevel = createObject(u'waeup.StudentStudyLevel')
     2081        studylevel.level = 200
     2082        self.student['studycourse'].addStudentStudyLevel(
     2083            self.certificate, studylevel)
     2084
     2085        # Edit and add pages are locked for old study courses
     2086        self.browser.open(self.student_path + '/studycourse/manage')
     2087        self.assertFalse('The requested form is locked' in self.browser.contents)
     2088        self.browser.open(self.student_path + '/studycourse_1/manage')
     2089        self.assertTrue('The requested form is locked' in self.browser.contents)
     2090
     2091        self.browser.open(self.student_path + '/studycourse/start_session')
     2092        self.assertFalse('The requested form is locked' in self.browser.contents)
     2093        self.browser.open(self.student_path + '/studycourse_1/start_session')
     2094        self.assertTrue('The requested form is locked' in self.browser.contents)
     2095
     2096        IWorkflowState(self.student).setState('school fee paid')
     2097        self.browser.open(self.student_path + '/studycourse/add')
     2098        self.assertFalse('The requested form is locked' in self.browser.contents)
     2099        self.browser.open(self.student_path + '/studycourse_1/add')
     2100        self.assertTrue('The requested form is locked' in self.browser.contents)
     2101
     2102        self.browser.open(self.student_path + '/studycourse/200/manage')
     2103        self.assertFalse('The requested form is locked' in self.browser.contents)
     2104        self.browser.open(self.student_path + '/studycourse_1/200/manage')
     2105        self.assertTrue('The requested form is locked' in self.browser.contents)
     2106
     2107        self.browser.open(self.student_path + '/studycourse/200/validate_courses')
     2108        self.assertFalse('The requested form is locked' in self.browser.contents)
     2109        self.browser.open(self.student_path + '/studycourse_1/200/validate_courses')
     2110        self.assertTrue('The requested form is locked' in self.browser.contents)
     2111
     2112        self.browser.open(self.student_path + '/studycourse/200/reject_courses')
     2113        self.assertFalse('The requested form is locked' in self.browser.contents)
     2114        self.browser.open(self.student_path + '/studycourse_1/200/reject_courses')
     2115        self.assertTrue('The requested form is locked' in self.browser.contents)
     2116
     2117        self.browser.open(self.student_path + '/studycourse/200/add')
     2118        self.assertFalse('The requested form is locked' in self.browser.contents)
     2119        self.browser.open(self.student_path + '/studycourse_1/200/add')
     2120        self.assertTrue('The requested form is locked' in self.browser.contents)
     2121
     2122        self.browser.open(self.student_path + '/studycourse/200/edit')
     2123        self.assertFalse('The requested form is locked' in self.browser.contents)
     2124        self.browser.open(self.student_path + '/studycourse_1/200/edit')
     2125        self.assertTrue('The requested form is locked' in self.browser.contents)
     2126
    18902127class StudentRequestPWTests(StudentsFullSetup):
    18912128    # Tests for student registration
     
    18942131
    18952132    def test_request_pw(self):
    1896         # Student with wrong reg_number can't be found.
     2133        # Student with wrong number can't be found.
    18972134        self.browser.open('http://localhost/app/requestpw')
    18982135        self.browser.getControl(name="form.firstname").value = 'Anna'
    1899         self.browser.getControl(name="form.reg_number").value = 'anynumber'
     2136        self.browser.getControl(name="form.number").value = 'anynumber'
    19002137        self.browser.getControl(name="form.email").value = 'xx@yy.zz'
    1901         self.browser.getControl("Get login credentials").click()
     2138        self.browser.getControl("Send login credentials").click()
    19022139        self.assertTrue('No student record found.'
    19032140            in self.browser.contents)
     
    19062143        self.browser.open('http://localhost/app/requestpw')
    19072144        self.browser.getControl(name="form.firstname").value = 'Johnny'
    1908         self.browser.getControl(name="form.reg_number").value = '123'
     2145        self.browser.getControl(name="form.number").value = '123'
    19092146        self.browser.getControl(name="form.email").value = 'xx@yy.zz'
    1910         self.browser.getControl("Get login credentials").click()
     2147        self.browser.getControl("Send login credentials").click()
    19112148        self.assertTrue('No student record found.'
    19122149            in self.browser.contents)
     
    19142151        # password has been set and used.
    19152152        self.browser.getControl(name="form.firstname").value = 'Anna'
    1916         self.browser.getControl(name="form.reg_number").value = '123'
    1917         self.browser.getControl("Get login credentials").click()
     2153        self.browser.getControl(name="form.number").value = '123'
     2154        self.browser.getControl("Send login credentials").click()
    19182155        self.assertTrue('Your password has already been set and used.'
    19192156            in self.browser.contents)
     
    19222159        # The firstname field, used for verification, is not case-sensitive.
    19232160        self.browser.getControl(name="form.firstname").value = 'aNNa'
    1924         self.browser.getControl(name="form.reg_number").value = '123'
     2161        self.browser.getControl(name="form.number").value = '123'
    19252162        self.browser.getControl(name="form.email").value = 'new@yy.zz'
    1926         self.browser.getControl("Get login credentials").click()
     2163        self.browser.getControl("Send login credentials").click()
    19272164        # Yeah, we succeded ...
     2165        self.assertTrue('Your password request was successful.'
     2166            in self.browser.contents)
     2167        # We can also use the matric_number instead.
     2168        self.browser.open('http://localhost/app/requestpw')
     2169        self.browser.getControl(name="form.firstname").value = 'aNNa'
     2170        self.browser.getControl(name="form.number").value = '234'
     2171        self.browser.getControl(name="form.email").value = 'new@yy.zz'
     2172        self.browser.getControl("Send login credentials").click()
    19282173        self.assertTrue('Your password request was successful.'
    19292174            in self.browser.contents)
     
    19342179            email=('new@yy.zz', 'new@yy.zz')))
    19352180        self.assertEqual(self.student,results[0])
     2181        logfile = os.path.join(
     2182            self.app['datacenter'].storage, 'logs', 'main.log')
     2183        logcontent = open(logfile).read()
     2184        self.assertTrue('zope.anybody - students.browser.StudentRequestPasswordPage - '
     2185                        '234 (K1000000) - new@yy.zz' in logcontent)
    19362186        return
Note: See TracChangeset for help on using the changeset viewer.