Ignore:
Timestamp:
15 Oct 2012, 09:56:35 (12 years ago)
Author:
Henrik Bettermann
Message:

Add views for temporarily login as student.

File:
1 edited

Legend:

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

    r9336 r9338  
    14671467        self.assertTrue('The requested form is locked' in self.browser.contents)
    14681468
     1469    def test_login_as_student(self):
     1470        # StudentImpersonators can login as student
     1471        # Create clearance officer
     1472        self.app['users'].addUser('mrofficer', 'mrofficersecret')
     1473        self.app['users']['mrofficer'].email = 'mrofficer@foo.ng'
     1474        self.app['users']['mrofficer'].title = 'Harry Actor'
     1475        prmglobal = IPrincipalRoleManager(self.app)
     1476        prmglobal.assignRoleToPrincipal('waeup.StudentImpersonator', 'mrofficer')
     1477        prmglobal.assignRoleToPrincipal('waeup.StudentsManager', 'mrofficer')
     1478        # Login as student impersonator
     1479        self.browser.open(self.login_path)
     1480        self.browser.getControl(name="form.login").value = 'mrofficer'
     1481        self.browser.getControl(name="form.password").value = 'mrofficersecret'
     1482        self.browser.getControl("Login").click()
     1483        self.assertMatches('...You logged in...', self.browser.contents)
     1484        self.browser.open(self.student_path)
     1485        self.browser.getLink("Login as").click()
     1486        self.browser.getControl("Set password now").click()
     1487        temp_password = self.browser.getControl(name='form.password').value
     1488        self.browser.getControl("Login now").click()
     1489        self.assertMatches(
     1490            '...You successfully logged in as...', self.browser.contents)
     1491        # We are logged in as student and can see the 'My Data' tab
     1492        self.assertMatches(
     1493            '...<a href="#" class="dropdown-toggle">My Data</a>...',
     1494            self.browser.contents)
     1495        self.browser.getLink("Logout").click()
     1496        # The student can't login with the original password ...
     1497        self.browser.open(self.login_path)
     1498        self.browser.getControl(name="form.login").value = self.student_id
     1499        self.browser.getControl(name="form.password").value = 'spwd'
     1500        self.browser.getControl("Login").click()
     1501        self.assertMatches(
     1502            '...Your account has been temporarily deactivated...',
     1503            self.browser.contents)
     1504        # ... but with the temporary password
     1505        self.browser.open(self.login_path)
     1506        self.browser.getControl(name="form.login").value = self.student_id
     1507        self.browser.getControl(name="form.password").value = temp_password
     1508        self.browser.getControl("Login").click()
     1509        self.assertMatches('...You logged in...', self.browser.contents)
     1510        # Creation of temp_password is properly logged
     1511        logfile = os.path.join(
     1512            self.app['datacenter'].storage, 'logs', 'students.log')
     1513        logcontent = open(logfile).read()
     1514        self.assertTrue(
     1515            'mrofficer - students.browser.LoginAsStudentStep1 - K1000000 - '
     1516            'temp_password generated: %s' % temp_password in logcontent)
     1517
    14691518class StudentUITests(StudentsFullSetup):
    14701519    # Tests for Student class views and pages
Note: See TracChangeset for help on using the changeset viewer.