Ignore:
Timestamp:
27 Mar 2012, 20:59:30 (12 years ago)
Author:
Henrik Bettermann
Message:

Use different clearance form field interfaces for undergraduate and postgraduate students.

Location:
main/waeup.kofa/trunk/src/waeup/kofa/students/tests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py

    r7983 r7993  
    109109        self.student_path = self.container_path + '/' + self.student_id
    110110        self.manage_student_path = self.student_path + '/manage_base'
    111         self.clearance_student_path = self.student_path + '/view_clearance'
    112         self.personal_student_path = self.student_path + '/view_personal'
    113         self.edit_clearance_student_path = self.student_path + '/edit_clearance'
    114         self.edit_personal_student_path = self.student_path + '/edit_personal'
    115         self.studycourse_student_path = self.student_path + '/studycourse'
    116         self.payments_student_path = self.student_path + '/payments'
    117         self.acco_student_path = self.student_path + '/accommodation'
    118         self.history_student_path = self.student_path + '/history'
     111        self.clearance_path = self.student_path + '/view_clearance'
     112        self.personal_path = self.student_path + '/view_personal'
     113        self.edit_clearance_path = self.student_path + '/cedit'
     114        self.manage_clearance_path = self.student_path + '/edit_clearance'
     115        self.edit_personal_path = self.student_path + '/edit_personal'
     116        self.studycourse_path = self.student_path + '/studycourse'
     117        self.payments_path = self.student_path + '/payments'
     118        self.acco_path = self.student_path + '/accommodation'
     119        self.history_path = self.student_path + '/history'
    119120
    120121        # Create 5 access codes with prefix'PWD'
     
    399400        self.browser.getLink("Clearance Data").click()
    400401        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    401         self.assertEqual(self.browser.url, self.clearance_student_path)
     402        self.assertEqual(self.browser.url, self.clearance_path)
    402403        self.browser.getLink("Manage").click()
    403404        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    404         self.assertEqual(self.browser.url, self.edit_clearance_student_path)
     405        self.assertEqual(self.browser.url, self.manage_clearance_path)
    405406        self.browser.getControl(name="form.date_of_birth").value = '09/10/1961'
    406407        self.browser.getControl("Save").click()
     
    411412        self.browser.getLink("Personal Data").click()
    412413        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    413         self.assertEqual(self.browser.url, self.personal_student_path)
     414        self.assertEqual(self.browser.url, self.personal_path)
    414415        self.browser.getLink("Edit").click()
    415416        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    416         self.assertEqual(self.browser.url, self.edit_personal_student_path)
     417        self.assertEqual(self.browser.url, self.edit_personal_path)
    417418        self.browser.getControl("Save").click()
    418419        self.assertMatches('...Form has been saved...',
     
    423424        self.browser.getLink("Payments").click()
    424425        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    425         self.assertEqual(self.browser.url, self.payments_student_path)
     426        self.assertEqual(self.browser.url, self.payments_path)
    426427        self.browser.open(self.student_path)
    427428        self.browser.getLink("Accommodation").click()
    428429        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    429         self.assertEqual(self.browser.url, self.acco_student_path)
     430        self.assertEqual(self.browser.url, self.acco_path)
    430431        self.browser.open(self.student_path)
    431432        self.browser.getLink("History").click()
    432433        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    433         self.assertEqual(self.browser.url, self.history_student_path)
     434        self.assertEqual(self.browser.url, self.history_path)
    434435        self.assertMatches('...Student admitted by Manager...',
    435436                           self.browser.contents)
     
    477478        # The image is stored even if form has errors
    478479        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    479         self.browser.open(self.edit_clearance_student_path)
     480        self.browser.open(self.manage_clearance_path)
    480481        # No birth certificate has been uploaded yet
    481482        # Browsing the link shows a placerholder image
     
    486487        # Create a pseudo image file and select it to be uploaded in form
    487488        # as birth certificate
    488         self.browser.open(self.edit_clearance_student_path)
     489        self.browser.open(self.manage_clearance_path)
    489490        pseudo_image = StringIO('I pretend to be a graphics file')
    490491        ctrl = self.browser.getControl(name='birthcertificateupload')
     
    514515        self.assertEqual(len(self.browser.contents), 31)
    515516        # Reuploading a file which is bigger than 150k will raise an error
    516         self.browser.open(self.edit_clearance_student_path)
     517        self.browser.open(self.manage_clearance_path)
    517518        photo_content = 'A' * 1024 * 151  # A string of 21 KB size
    518519        pseudo_image = StringIO(photo_content)
     
    551552            'birth_certificate deleted' in self.browser.contents)
    552553        # Managers can add and delete second file
    553         self.browser.open(self.edit_clearance_student_path)
     554        self.browser.open(self.manage_clearance_path)
    554555        pseudo_image = StringIO('I pretend to be a graphics file')
    555556        ctrl = self.browser.getControl(name='birthcertificateupload')
     
    609610        self.browser.getLink("Study Course").click()
    610611        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    611         self.assertEqual(self.browser.url, self.studycourse_student_path)
     612        self.assertEqual(self.browser.url, self.studycourse_path)
    612613        self.assertTrue('Undergraduate Full-Time' in self.browser.contents)
    613614        self.browser.getLink("Manage").click()
     
    840841            self.browser.contents)
    841842        # CO can view the student ...
    842         self.browser.open(self.clearance_student_path)
    843         self.assertEqual(self.browser.headers['Status'], '200 Ok')
    844         self.assertEqual(self.browser.url, self.clearance_student_path)
     843        self.browser.open(self.clearance_path)
     844        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     845        self.assertEqual(self.browser.url, self.clearance_path)
    845846        # ... but not other students
    846847        other_student = Student()
     
    853854            Unauthorized, self.browser.open, other_student_path)
    854855        # Only in state clearance requested the CO does see the 'Clear' button
    855         self.browser.open(self.clearance_student_path)
     856        self.browser.open(self.clearance_path)
    856857        self.assertFalse('Clear student' in self.browser.contents)
    857858        IWorkflowInfo(self.student).fireTransition('request_clearance')
    858         self.browser.open(self.clearance_student_path)
     859        self.browser.open(self.clearance_path)
    859860        self.assertTrue('Clear student' in self.browser.contents)
    860861        self.browser.getLink("Clear student").click()
     
    869870        self.assertTrue('clearance started' in self.browser.contents)
    870871        IWorkflowInfo(self.student).fireTransition('request_clearance')
    871         self.browser.open(self.clearance_student_path)
     872        self.browser.open(self.clearance_path)
    872873        self.browser.getLink("Reject clearance").click()
    873874        self.assertTrue('Clearance request has been rejected'
     
    941942        self.student['studycourse'].addStudentStudyLevel(
    942943            cert,studylevel)
    943         L110_student_path = self.studycourse_student_path + '/110'
     944        L110_student_path = self.studycourse_path + '/110'
    944945        # Only in state courses registered and only if the current level
    945946        # corresponds with the name of the study level object
     
    958959        self.student['studycourse'].addStudentStudyLevel(
    959960            cert,studylevel2)
    960         L200_student_path = self.studycourse_student_path + '/200'
     961        L200_student_path = self.studycourse_path + '/200'
    961962        self.browser.open(L200_student_path)
    962963        self.assertFalse('Validate' in self.browser.contents)
     
    12201221        # if certain requirements are met
    12211222        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    1222         self.browser.open(self.payments_student_path)
     1223        self.browser.open(self.payments_path)
    12231224        self.browser.getControl("Add online payment ticket").click()
    12241225        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     
    12401241        # The same payment (with same p_item, p_session and p_category)
    12411242        # can be initialized a second time if the former ticket is not yet paid.
    1242         self.browser.open(self.payments_student_path)
     1243        self.browser.open(self.payments_path)
    12431244        self.browser.getControl("Add online payment ticket").click()
    12441245        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     
    12611262        # Now the first ticket is paid and no more ticket of same type
    12621263        # (with same p_item, p_session and p_category) can be added
    1263         self.browser.open(self.payments_student_path)
     1264        self.browser.open(self.payments_path)
    12641265        self.browser.getControl("Add online payment ticket").click()
    12651266        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     
    12761277
    12771278        # Managers can remove online school fee payment tickets
    1278         self.browser.open(self.payments_student_path)
     1279        self.browser.open(self.payments_path)
    12791280        self.browser.getControl("Remove selected").click()
    12801281        self.assertMatches('...No payment selected...', self.browser.contents)
     
    12861287
    12871288        # Managers can add online clearance payment tickets
    1288         self.browser.open(self.payments_student_path + '/addop')
     1289        self.browser.open(self.payments_path + '/addop')
    12891290        self.browser.getControl(name="form.p_category").value = ['clearance']
    12901291        self.browser.getControl("Create ticket").click()
     
    13201321
    13211322        # Students can add online clearance payment tickets
    1322         self.browser.open(self.payments_student_path + '/addop')
     1323        self.browser.open(self.payments_path + '/addop')
    13231324        self.browser.getControl(name="form.p_category").value = ['clearance']
    13241325        self.browser.getControl("Create ticket").click()
     
    13751376
    13761377        # Students can add online school fee payment tickets
    1377         self.browser.open(self.payments_student_path)
     1378        self.browser.open(self.payments_path)
    13781379        self.browser.getControl("Add online payment ticket").click()
    13791380        self.browser.getControl(name="form.p_category").value = ['schoolfee']
     
    13951396        # Students can remove only online payment tickets which have
    13961397        # not received a valid callback
    1397         self.browser.open(self.payments_student_path)
     1398        self.browser.open(self.payments_path)
    13981399        self.assertRaises(
    13991400            LookupError, self.browser.getControl, name='val_id')
    1400         self.browser.open(self.payments_student_path + '/addop')
     1401        self.browser.open(self.payments_path + '/addop')
    14011402        self.browser.getControl(name="form.p_category").value = ['gown']
    14021403        self.browser.getControl("Create ticket").click()
    1403         self.browser.open(self.payments_student_path)
     1404        self.browser.open(self.payments_path)
    14041405        ctrl = self.browser.getControl(name='val_id')
    14051406        value = ctrl.options[0]
     
    14111412        IWorkflowInfo(self.student).fireTransition('request_clearance')
    14121413        IWorkflowInfo(self.student).fireTransition('clear')
    1413         self.browser.open(self.studycourse_student_path)
     1414        self.browser.open(self.studycourse_path)
    14141415        self.browser.getLink('Start course registration').click()
    14151416        pin = self.app['accesscodes']['SFE-0'].keys()[0]
     
    14281429        # callback view (see test_manage_payments)
    14291430        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    1430         self.browser.open(self.payments_student_path)
     1431        self.browser.open(self.payments_path)
    14311432        self.browser.getControl("Add online payment ticket").click()
    14321433        self.browser.getControl(name="form.p_category").value = ['bed_allocation']
     
    14521453        sfeseries, sfenumber = parts
    14531454        # Managers can use HOS code and book a bed space with it
    1454         self.browser.open(self.acco_student_path)
     1455        self.browser.open(self.acco_path)
    14551456        self.browser.getLink("Book accommodation").click()
    14561457        self.assertMatches('...You are in the wrong...',
     
    14811482            self.browser.contents)
    14821483        # The bed ticket displays the data correctly
    1483         self.browser.open(self.acco_student_path + '/2004')
     1484        self.browser.open(self.acco_path + '/2004')
    14841485        self.assertMatches('...Hall 1, Block A, Room 101, Bed A...',
    14851486                           self.browser.contents)
     
    15291530        self.assertMatches(old_owner, self.student_id)
    15301531        bed2.owner = self.student_id
    1531         self.browser.open(self.acco_student_path + '/2004')
     1532        self.browser.open(self.acco_path + '/2004')
    15321533        self.assertMatches(
    15331534            "...booking cancelled...", self.browser.contents)
     
    15451546            "... Hall 1, Block A, Room 101, Bed B...", self.browser.contents)
    15461547          # Managers can delete bed tickets
    1547         self.browser.open(self.acco_student_path)
     1548        self.browser.open(self.acco_path)
    15481549        ctrl = self.browser.getControl(name='val_id')
    15491550        value = ctrl.options[0]
     
    15821583
    15831584        # Students can use HOS code and book a bed space with it
    1584         self.browser.open(self.acco_student_path)
     1585        self.browser.open(self.acco_path)
    15851586        self.browser.getLink("Book accommodation").click()
    15861587        self.assertMatches('...You are in the wrong...',
     
    16171618
    16181619        # The bed ticket displays the data correctly
    1619         self.browser.open(self.acco_student_path + '/2004')
     1620        self.browser.open(self.acco_path + '/2004')
    16201621        self.assertMatches('...Hall 1, Block A, Room 101, Bed A...',
    16211622                           self.browser.contents)
     
    16311632        # Students can't relocate themselves
    16321633        self.assertFalse('Relocate' in self.browser.contents)
    1633         relocate_path = self.acco_student_path + '/2004/relocate'
     1634        relocate_path = self.acco_path + '/2004/relocate'
    16341635        self.assertRaises(
    16351636            Unauthorized, self.browser.open, relocate_path)
    16361637
    16371638        # Students can't the Remove button and check boxes
    1638         self.browser.open(self.acco_student_path)
     1639        self.browser.open(self.acco_path)
    16391640        self.assertFalse('Remove' in self.browser.contents)
    16401641        self.assertFalse('val_id' in self.browser.contents)
     
    16641665        results = cat.searchResults(student_id=(None, None))
    16651666        self.assertEqual(len(results),1)
     1667
     1668    def test_change_current_mode(self):
     1669        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     1670        self.browser.open(self.clearance_path)
     1671        self.assertFalse('Employer' in self.browser.contents)
     1672        self.browser.open(self.manage_clearance_path)
     1673        self.assertFalse('Employer' in self.browser.contents)
     1674        self.student.clearance_locked = False
     1675        self.browser.open(self.edit_clearance_path)
     1676        self.assertFalse('Employer' in self.browser.contents)
     1677        # Now we change the study mode of the certificate and a different
     1678        # interface is used by clearance views
     1679        self.certificate.study_mode = 'pg_ft'
     1680        self.browser.open(self.clearance_path)
     1681        self.assertTrue('Employer' in self.browser.contents)
     1682        self.browser.open(self.manage_clearance_path)
     1683        self.assertTrue('Employer' in self.browser.contents)
     1684        self.browser.open(self.edit_clearance_path)
     1685        self.assertTrue('Employer' in self.browser.contents)
  • main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_export.py

    r7973 r7993  
    6666        self.assertEqual(
    6767            result,
    68             'adm_code,clearance_locked,clr_code,date_of_birth,email,'
     68            'adm_code,clearance_locked,clr_code,date_of_birth,email,employer,'
    6969            'firstname,lastname,matric_number,middlename,nationality,'
    7070            'perm_address,phone,reg_number,sex,student_id\r\n'
    7171
    72             'my adm code,0,my clr code,1981-02-04#,anna@sample.com,Anna,'
     72            'my adm code,0,my clr code,1981-02-04#,anna@sample.com,,Anna,'
    7373            'Tester,M123456,M.,nigeria,"Studentroad 21\nLagos 123456\n",'
    7474            '+234-123-12345,123456,f,A111111\r\n'
     
    8585        self.assertEqual(
    8686            result,
    87             'adm_code,clearance_locked,clr_code,date_of_birth,email,'
     87            'adm_code,clearance_locked,clr_code,date_of_birth,email,employer,'
    8888            'firstname,lastname,matric_number,middlename,nationality,'
    8989            'perm_address,phone,reg_number,sex,student_id\r\n'
    9090
    91             'my adm code,0,my clr code,1981-02-04#,anna@sample.com,Anna,'
     91            'my adm code,0,my clr code,1981-02-04#,anna@sample.com,,Anna,'
    9292            'Tester,M123456,M.,nigeria,"Studentroad 21\nLagos 123456\n",'
    9393            '+234-123-12345,123456,f,A111111\r\n'
Note: See TracChangeset for help on using the changeset viewer.