Ignore:
Timestamp:
10 Sep 2012, 11:05:07 (12 years ago)
Author:
uli
Message:

Merge changes from trunk, r8786-HEAD

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

Legend:

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

  • main/waeup.kofa/branches/uli-async-update/src/waeup/kofa/students/tests/test_browser.py

    r8779 r9169  
    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
     
    454455        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    455456        self.assertEqual(self.browser.url, self.personal_path)
     457        self.browser.getLink("Manage").click()
     458        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     459        self.assertEqual(self.browser.url, self.manage_personal_path)
     460        self.browser.open(self.personal_path)
    456461        self.browser.getLink("Edit").click()
    457462        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     
    474479        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    475480        self.assertEqual(self.browser.url, self.history_path)
    476         self.assertMatches('...Student admitted by Manager...',
     481        self.assertMatches('...Admitted by Manager...',
    477482                           self.browser.contents)
    478483        # Only the Application Slip does not exist
     
    754759        self.assertEqual(student['studycourse'].current_session, 2005) # +1
    755760        self.assertEqual(student['studycourse'].current_level, 200) # +100
    756         self.assertEqual(student['studycourse'].current_verdict, 'NY') # NY = not set
     761        self.assertEqual(student['studycourse'].current_verdict, '0') # 0 = Zero = not set
    757762        self.assertEqual(student['studycourse'].previous_verdict, 'A')
    758763        self.browser.getControl(name="transition").value = ['register_courses']
     
    762767        self.browser.getControl(name="transition").value = ['return']
    763768        self.browser.getControl("Save").click()
     769        return
     770
     771    def test_manage_pg_workflow(self):
     772        # Managers can pass through the whole workflow
     773        IWorkflowState(self.student).setState('school fee paid')
     774        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     775        student = self.app['students'][self.student_id]
     776        self.browser.open(self.manage_student_path)
     777        self.assertTrue('<option value="reset6">' in self.browser.contents)
     778        self.assertTrue('<option value="register_courses">' in self.browser.contents)
     779        self.assertTrue('<option value="reset5">' in self.browser.contents)
     780        self.certificate.study_mode = 'pg_ft'
     781        self.browser.open(self.manage_student_path)
     782        self.assertFalse('<option value="reset6">' in self.browser.contents)
     783        self.assertFalse('<option value="register_courses">' in self.browser.contents)
     784        self.assertTrue('<option value="reset5">' in self.browser.contents)
    764785        return
    765786
     
    776797        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    777798        self.browser.open(datacenter_path)
    778         self.browser.getLink('Upload CSV file').click()
     799        self.browser.getLink('Upload data').click()
    779800        filecontents = StringIO(open('students.csv', 'rb').read())
    780801        filewidget = self.browser.getControl(name='uploadfile:file')
    781802        filewidget.add_file(filecontents, 'text/plain', 'students.csv')
    782803        self.browser.getControl(name='SUBMIT').click()
    783         self.browser.getLink('Batch processing').click()
     804        self.browser.getLink('Process data').click()
    784805        button = lookup_submit_value(
    785806            'select', 'students_zope.mgr.csv', self.browser)
     
    802823""")
    803824        self.browser.open(datacenter_path)
    804         self.browser.getLink('Upload CSV file').click()
     825        self.browser.getLink('Upload data').click()
    805826        filecontents = StringIO(open('studycourses.csv', 'rb').read())
    806827        filewidget = self.browser.getControl(name='uploadfile:file')
    807828        filewidget.add_file(filecontents, 'text/plain', 'studycourses.csv')
    808829        self.browser.getControl(name='SUBMIT').click()
    809         self.browser.getLink('Batch processing').click()
     830        self.browser.getLink('Process data').click()
    810831        button = lookup_submit_value(
    811832            'select', 'studycourses_zope.mgr.csv', self.browser)
     
    917938        self.assertTrue('clearance started' in self.browser.contents)
    918939        self.browser.open(self.history_path)
    919         self.assertTrue("Reset to 'clearance' by My Public Name" in
     940        self.assertTrue("Reset to 'clearance started' by My Public Name" in
    920941            self.browser.contents)
    921942        IWorkflowInfo(self.student).fireTransition('request_clearance')
     
    946967        self.app['users'].addUser('mrsadvise', 'mrsadvisesecret')
    947968        self.app['users']['mrsadvise'].email = 'mradvise@foo.ng'
    948         self.app['users']['mrsadvise'].title = 'Helen Procter'
     969        self.app['users']['mrsadvise'].title = u'Helen Procter'
    949970        # Assign local CourseAdviser100 role for a certificate
    950971        cert = self.app['faculties']['fac1']['dep1'].certificates['CERT1']
     
    9971018        # the 100L CA does see the 'Validate' button
    9981019        self.browser.open(L110_student_path)
    999         self.assertFalse('Validate' in self.browser.contents)
     1020        self.assertFalse('Validate courses' in self.browser.contents)
    10001021        IWorkflowInfo(self.student).fireTransition('register_courses')
    10011022        self.browser.open(L110_student_path)
    1002         self.assertFalse('Validate' in self.browser.contents)
     1023        self.assertFalse('Validate courses' in self.browser.contents)
    10031024        self.student['studycourse'].current_level = 110
    10041025        self.browser.open(L110_student_path)
    1005         self.assertTrue('Validate' in self.browser.contents)
     1026        self.assertTrue('Validate courses' in self.browser.contents)
    10061027        # ... but a 100L CA does not see the button on other levels
    10071028        studylevel2 = StudentStudyLevel()
     
    10111032        L200_student_path = self.studycourse_path + '/200'
    10121033        self.browser.open(L200_student_path)
    1013         self.assertFalse('Validate' in self.browser.contents)
     1034        self.assertFalse('Validate courses' in self.browser.contents)
    10141035        self.browser.open(L110_student_path)
    10151036        self.browser.getLink("Validate courses").click()
    10161037        self.assertTrue('Course list has been validated' in self.browser.contents)
    10171038        self.assertTrue('courses validated' in self.browser.contents)
     1039        self.assertEqual(self.student['studycourse']['110'].validated_by,
     1040            'Helen Procter')
     1041        self.assertMatches(
     1042            '<YYYY-MM-DD hh:mm:ss>',
     1043            self.student['studycourse']['110'].validation_date.strftime(
     1044                "%Y-%m-%d %H:%M:%S"))
    10181045        self.browser.getLink("Reject courses").click()
    10191046        self.assertTrue('Course list request has been annulled.'
     
    10231050            '/contactstudent?subject=%s' % urlmessage)
    10241051        self.assertTrue('school fee paid' in self.browser.contents)
     1052        self.assertTrue(self.student['studycourse']['110'].validated_by is None)
     1053        self.assertTrue(self.student['studycourse']['110'].validation_date is None)
    10251054        IWorkflowInfo(self.student).fireTransition('register_courses')
    10261055        self.browser.open(L110_student_path)
     
    11421171        # and can perform actions
    11431172        IWorkflowInfo(self.student).fireTransition('admit')
     1173        # Students can't login if their account is suspended/deactivated
     1174        self.student.suspended = True
    11441175        self.browser.open(self.login_path)
    11451176        self.browser.getControl(name="form.login").value = self.student_id
    11461177        self.browser.getControl(name="form.password").value = 'spwd'
    11471178        self.browser.getControl("Login").click()
     1179        self.assertTrue(
     1180            'Your account has been deactivated.' in self.browser.contents)
     1181        self.student.suspended = False
     1182        self.browser.getControl("Login").click()
     1183        self.assertTrue(
     1184            'You logged in.' in self.browser.contents)
    11481185        # Student can upload a passport picture
    11491186        self.browser.open(self.student_path + '/change_portrait')
     
    11701207        self.assertMatches('...Not all required fields filled...',
    11711208                           self.browser.contents)
    1172         self.student.email = 'aa@aa.ng'
     1209        self.browser.open(self.student_path + '/edit_base')
     1210        self.browser.getControl(name="form.email").value = 'aa@aa.ng'
     1211        self.browser.getControl("Save").click()
    11731212        self.browser.open(self.student_path + '/start_clearance')
    11741213        self.browser.getControl(name="ac_series").value = '3'
     
    11851224        # Set the correct owner
    11861225        self.existing_clrac.owner = self.student_id
     1226        # clr_code might be set (and thus returns None) due importing
     1227        # an empty clr_code column.
     1228        self.student.clr_code = None
    11871229        self.browser.getControl("Start clearance now").click()
    11881230        self.assertMatches('...Clearance process has been started...',
     
    12351277        self.browser.getControl("Create course list now").click()
    12361278        self.browser.getLink("100").click()
    1237         self.browser.getLink("Add and remove courses").click()
     1279        self.browser.getLink("Edit course list").click()
    12381280        self.browser.getControl("Add course ticket").click()
    12391281        self.browser.getControl(name="form.course").value = ['COURSE1']
     
    12481290        self.browser.getControl("Create course list now").click()
    12491291        self.browser.getLink("200").click()
    1250         self.browser.getLink("Add and remove courses").click()
     1292        self.browser.getLink("Edit course list").click()
    12511293        self.browser.getControl("Add course ticket").click()
    12521294        self.browser.getControl(name="form.course").value = ['COURSE1']
     
    12861328        self.assertEqual(self.student.state, 'courses registered')
    12871329        return
     1330
     1331    def test_student_clearance_wo_clrcode(self):
     1332        IWorkflowState(self.student).setState('clearance started')
     1333        self.browser.open(self.login_path)
     1334        self.browser.getControl(name="form.login").value = self.student_id
     1335        self.browser.getControl(name="form.password").value = 'spwd'
     1336        self.browser.getControl("Login").click()
     1337        self.student.clearance_locked = False
     1338        self.browser.open(self.edit_clearance_path)
     1339        self.browser.getControl(name="form.date_of_birth").value = '09/10/1961'
     1340        self.browser.getControl("Save and request clearance").click()
     1341        self.assertMatches('...Clearance has been requested...',
     1342                           self.browser.contents)
    12881343
    12891344    def test_manage_payments(self):
     
    15161571        # The new SFE-0 pin can be used for starting new session
    15171572        self.browser.open(self.studycourse_path)
    1518         self.browser.getLink('Start session').click()
     1573        self.browser.getLink('Start new session').click()
    15191574        pin = self.app['accesscodes']['SFE-0'].keys()[0]
    15201575        parts = pin.split('-')[1:]
     
    15281583        return
    15291584
    1530     def test_postgraduate_payments(self):
     1585    def test_student_previous_payments(self):
     1586        # Login
     1587        self.browser.open(self.login_path)
     1588        self.browser.getControl(name="form.login").value = self.student_id
     1589        self.browser.getControl(name="form.password").value = 'spwd'
     1590        self.browser.getControl("Login").click()
     1591
     1592        # Students can add previous school fee payment tickets in any state.
     1593        IWorkflowState(self.student).setState('courses registered')
     1594        self.browser.open(self.payments_path)
     1595        self.browser.getControl("Add online payment ticket").click()
     1596        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     1597        self.browser.getControl("Create ticket").click()
     1598
     1599        # Amount cannot be determined since the state is not
     1600        # 'cleared' or 'returning'
     1601        self.assertMatches('...Amount could not be determined...',
     1602                           self.browser.contents)
     1603        self.assertMatches('...Would you like to pay for a previous session?...',
     1604                           self.browser.contents)
     1605
     1606        # Previous session payment form is provided
     1607        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     1608        self.browser.getControl(name="form.p_session").value = ['2004']
     1609        self.browser.getControl(name="form.p_level").value = ['300']
     1610        self.browser.getControl("Create ticket").click()
     1611        self.assertMatches('...ticket created...',
     1612                           self.browser.contents)
     1613        ctrl = self.browser.getControl(name='val_id')
     1614        value = ctrl.options[0]
     1615        self.browser.getLink(value).click()
     1616        self.assertMatches('...Amount Authorized...',
     1617                           self.browser.contents)
     1618        self.assertEqual(self.student['payments'][value].amount_auth, 20000.0)
     1619
     1620        # Payment session is properly set
     1621        self.assertEqual(self.student['payments'][value].p_session, 2004)
     1622        self.assertEqual(self.student['payments'][value].p_level, 300)
     1623
     1624        # We simulate the approval
     1625        self.browser.open(self.browser.url + '/fake_approve')
     1626        self.assertMatches('...Payment approved...',
     1627                          self.browser.contents)
     1628
     1629        # No AC has been created
     1630        self.assertEqual(len(self.app['accesscodes']['SFE-0'].keys()), 0)
     1631        self.assertTrue(self.student['payments'][value].ac is None)
     1632
     1633        # Current payment flag is set False
     1634        self.assertFalse(self.student['payments'][value].p_current)
     1635        return
     1636
     1637    def test_student_postgraduate_payments(self):
    15311638        self.certificate.study_mode = 'pg_ft'
    15321639        self.certificate.start_level = 999
     
    15521659                           self.browser.contents)
    15531660        # Payment session and level are current ones.
    1554         # Postgrads have to school_fee_1.
     1661        # Postgrads have to pay school_fee_1.
    15551662        self.assertEqual(self.student['payments'][value].amount_auth, 40000.0)
    15561663        self.assertEqual(self.student['payments'][value].p_session, 2004)
     
    15651672        # The new SFE-0 pin can be used for starting session
    15661673        self.browser.open(self.studycourse_path)
    1567         self.browser.getLink('Start session').click()
     1674        self.browser.getLink('Start new session').click()
    15681675        pin = self.app['accesscodes']['SFE-0'].keys()[0]
    15691676        parts = pin.split('-')[1:]
     
    16051712        # The new SFE-1 pin can be used for starting new session
    16061713        self.browser.open(self.studycourse_path)
    1607         self.browser.getLink('Start session').click()
     1714        self.browser.getLink('Start new session').click()
    16081715        self.browser.getControl(name="ac_series").value = sfeseries
    16091716        self.browser.getControl(name="ac_number").value = sfenumber
     
    18501957        self.assertTrue('An email with' in self.browser.contents)
    18511958
    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)
    1868 
    18691959    def test_change_current_mode(self):
    18701960        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     
    18881978        self.assertTrue('Employer' in self.browser.contents)
    18891979
     1980    def test_activate_deactivate_buttons(self):
     1981        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     1982        self.browser.open(self.student_path)
     1983        self.browser.getLink("Deactivate").click()
     1984        self.assertTrue(
     1985            'Student account has been deactivated.' in self.browser.contents)
     1986        self.assertTrue(
     1987            'Base Data (account deactivated)' in self.browser.contents)
     1988        self.assertTrue(self.student.suspended)
     1989        self.browser.getLink("Activate").click()
     1990        self.assertTrue(
     1991            'Student account has been activated.' in self.browser.contents)
     1992        self.assertFalse(
     1993            'Base Data (account deactivated)' in self.browser.contents)
     1994        self.assertFalse(self.student.suspended)
     1995        # History messages have been added ...
     1996        self.browser.getLink("History").click()
     1997        self.assertTrue(
     1998            'Student account deactivated by Manager<br />' in self.browser.contents)
     1999        self.assertTrue(
     2000            'Student account activated by Manager<br />' in self.browser.contents)
     2001        # ... and actions have been logged.
     2002        logfile = os.path.join(
     2003            self.app['datacenter'].storage, 'logs', 'students.log')
     2004        logcontent = open(logfile).read()
     2005        self.assertTrue('zope.mgr - students.browser.StudentDeactivatePage - '
     2006                        'K1000000 - account deactivated' in logcontent)
     2007        self.assertTrue('zope.mgr - students.browser.StudentActivatePage - '
     2008                        'K1000000 - account activated' in logcontent)
     2009
     2010    def test_student_transfer(self):
     2011        # Add second certificate
     2012        self.certificate2 = createObject('waeup.Certificate')
     2013        self.certificate2.code = u'CERT2'
     2014        self.certificate2.study_mode = 'ug_ft'
     2015        self.certificate2.start_level = 999
     2016        self.certificate2.end_level = 999
     2017        self.app['faculties']['fac1']['dep1'].certificates.addCertificate(
     2018            self.certificate2)
     2019
     2020        # Add study level to old study course
     2021        studylevel = createObject(u'waeup.StudentStudyLevel')
     2022        studylevel.level = 200
     2023        self.student['studycourse'].addStudentStudyLevel(
     2024            self.certificate, studylevel)
     2025
     2026        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     2027        self.browser.open(self.student_path)
     2028        self.browser.getLink("Transfer").click()
     2029        self.browser.getControl(name="form.certificate").value = ['CERT2']
     2030        self.browser.getControl(name="form.current_session").value = ['2011']
     2031        self.browser.getControl(name="form.current_level").value = ['200']
     2032        self.browser.getControl("Transfer").click()
     2033        self.assertTrue(
     2034            'Current level does not match certificate levels'
     2035            in self.browser.contents)
     2036        self.browser.getControl(name="form.current_level").value = ['999']
     2037        self.browser.getControl("Transfer").click()
     2038        self.assertTrue('Successfully transferred' in self.browser.contents)
     2039
     2040        # Add study level to new study course
     2041        studylevel = createObject(u'waeup.StudentStudyLevel')
     2042        studylevel.level = 200
     2043        self.student['studycourse'].addStudentStudyLevel(
     2044            self.certificate, studylevel)
     2045
     2046        # Edit and add pages are locked for old study courses
     2047        self.browser.open(self.student_path + '/studycourse/manage')
     2048        self.assertFalse('The requested form is locked' in self.browser.contents)
     2049        self.browser.open(self.student_path + '/studycourse_1/manage')
     2050        self.assertTrue('The requested form is locked' in self.browser.contents)
     2051
     2052        self.browser.open(self.student_path + '/studycourse/start_session')
     2053        self.assertFalse('The requested form is locked' in self.browser.contents)
     2054        self.browser.open(self.student_path + '/studycourse_1/start_session')
     2055        self.assertTrue('The requested form is locked' in self.browser.contents)
     2056
     2057        IWorkflowState(self.student).setState('school fee paid')
     2058        self.browser.open(self.student_path + '/studycourse/add')
     2059        self.assertFalse('The requested form is locked' in self.browser.contents)
     2060        self.browser.open(self.student_path + '/studycourse_1/add')
     2061        self.assertTrue('The requested form is locked' in self.browser.contents)
     2062
     2063        self.browser.open(self.student_path + '/studycourse/200/manage')
     2064        self.assertFalse('The requested form is locked' in self.browser.contents)
     2065        self.browser.open(self.student_path + '/studycourse_1/200/manage')
     2066        self.assertTrue('The requested form is locked' in self.browser.contents)
     2067
     2068        self.browser.open(self.student_path + '/studycourse/200/validate_courses')
     2069        self.assertFalse('The requested form is locked' in self.browser.contents)
     2070        self.browser.open(self.student_path + '/studycourse_1/200/validate_courses')
     2071        self.assertTrue('The requested form is locked' in self.browser.contents)
     2072
     2073        self.browser.open(self.student_path + '/studycourse/200/reject_courses')
     2074        self.assertFalse('The requested form is locked' in self.browser.contents)
     2075        self.browser.open(self.student_path + '/studycourse_1/200/reject_courses')
     2076        self.assertTrue('The requested form is locked' in self.browser.contents)
     2077
     2078        self.browser.open(self.student_path + '/studycourse/200/add')
     2079        self.assertFalse('The requested form is locked' in self.browser.contents)
     2080        self.browser.open(self.student_path + '/studycourse_1/200/add')
     2081        self.assertTrue('The requested form is locked' in self.browser.contents)
     2082
     2083        self.browser.open(self.student_path + '/studycourse/200/edit')
     2084        self.assertFalse('The requested form is locked' in self.browser.contents)
     2085        self.browser.open(self.student_path + '/studycourse_1/200/edit')
     2086        self.assertTrue('The requested form is locked' in self.browser.contents)
     2087
    18902088class StudentRequestPWTests(StudentsFullSetup):
    18912089    # Tests for student registration
     
    18942092
    18952093    def test_request_pw(self):
    1896         # Student with wrong reg_number can't be found.
     2094        # Student with wrong number can't be found.
    18972095        self.browser.open('http://localhost/app/requestpw')
    18982096        self.browser.getControl(name="form.firstname").value = 'Anna'
    1899         self.browser.getControl(name="form.reg_number").value = 'anynumber'
     2097        self.browser.getControl(name="form.number").value = 'anynumber'
    19002098        self.browser.getControl(name="form.email").value = 'xx@yy.zz'
    1901         self.browser.getControl("Get login credentials").click()
     2099        self.browser.getControl("Send login credentials").click()
    19022100        self.assertTrue('No student record found.'
    19032101            in self.browser.contents)
     
    19062104        self.browser.open('http://localhost/app/requestpw')
    19072105        self.browser.getControl(name="form.firstname").value = 'Johnny'
    1908         self.browser.getControl(name="form.reg_number").value = '123'
     2106        self.browser.getControl(name="form.number").value = '123'
    19092107        self.browser.getControl(name="form.email").value = 'xx@yy.zz'
    1910         self.browser.getControl("Get login credentials").click()
     2108        self.browser.getControl("Send login credentials").click()
    19112109        self.assertTrue('No student record found.'
    19122110            in self.browser.contents)
     
    19142112        # password has been set and used.
    19152113        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()
     2114        self.browser.getControl(name="form.number").value = '123'
     2115        self.browser.getControl("Send login credentials").click()
    19182116        self.assertTrue('Your password has already been set and used.'
    19192117            in self.browser.contents)
     
    19222120        # The firstname field, used for verification, is not case-sensitive.
    19232121        self.browser.getControl(name="form.firstname").value = 'aNNa'
    1924         self.browser.getControl(name="form.reg_number").value = '123'
     2122        self.browser.getControl(name="form.number").value = '123'
    19252123        self.browser.getControl(name="form.email").value = 'new@yy.zz'
    1926         self.browser.getControl("Get login credentials").click()
     2124        self.browser.getControl("Send login credentials").click()
    19272125        # Yeah, we succeded ...
     2126        self.assertTrue('Your password request was successful.'
     2127            in self.browser.contents)
     2128        # We can also use the matric_number instead.
     2129        self.browser.open('http://localhost/app/requestpw')
     2130        self.browser.getControl(name="form.firstname").value = 'aNNa'
     2131        self.browser.getControl(name="form.number").value = '234'
     2132        self.browser.getControl(name="form.email").value = 'new@yy.zz'
     2133        self.browser.getControl("Send login credentials").click()
    19282134        self.assertTrue('Your password request was successful.'
    19292135            in self.browser.contents)
     
    19342140            email=('new@yy.zz', 'new@yy.zz')))
    19352141        self.assertEqual(self.student,results[0])
     2142        logfile = os.path.join(
     2143            self.app['datacenter'].storage, 'logs', 'main.log')
     2144        logcontent = open(logfile).read()
     2145        self.assertTrue('zope.anybody - students.browser.StudentRequestPasswordPage - '
     2146                        '234 (K1000000) - new@yy.zz' in logcontent)
    19362147        return
Note: See TracChangeset for help on using the changeset viewer.