Ignore:
Timestamp:
30 Jan 2020, 22:47:56 (5 years ago)
Author:
Henrik Bettermann
Message:

Add waeup.local.ReportsOfficer role.

File:
1 edited

Legend:

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

    r14605 r15968  
    11import os
    22from zc.async.testing import wait_for_result
     3from zope.event import notify
    34from zope.interface.verify import verifyClass, verifyObject
     5from zope.securitypolicy.interfaces import IPrincipalRoleManager
    46from zope.component import getUtility, createObject
    57from waeup.kofa.interfaces import IJobManager
     
    911from waeup.kofa.students.tests.test_browser import StudentsFullSetup
    1012from waeup.kofa.testing import FunctionalLayer
     13from waeup.kofa.authentication import LocalRoleSetEvent
    1114from waeup.kofa.tests.test_async import FunctionalAsyncTestCase
    1215from waeup.kofa.browser.tests.test_pdf import samples_dir
     16from waeup.kofa.tests.test_authentication import SECRET
    1317
    1418class LevelReportTests(CatalogTestSetup):
     
    112116
    113117    def trigger_report_creation(self):
    114         self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     118        #self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
     119        # Create reports officer
     120        self.app['users'].addUser('mrreport', SECRET)
     121        self.app['users']['mrreport'].email = 'mrreport@foo.ng'
     122        self.app['users']['mrreport'].title = 'Carlo Pitter'
     123        # Assign global reports officer role
     124        prmglobal = IPrincipalRoleManager(self.app)
     125        prmglobal.assignRoleToPrincipal('waeup.ReportsOfficer', 'mrreport')
     126        # Assign local ReportsOfficer role which restricts the access to
     127        # certain faculties.
     128        self.department = self.app['faculties']['fac1']['dep1']
     129        prmlocal = IPrincipalRoleManager(self.department)
     130        prmlocal.assignRoleToPrincipal(
     131            'waeup.local.ReportsOfficer', 'mrreport')
     132        notify(LocalRoleSetEvent(
     133            self.department, 'waeup.local.ReportsOfficer', 'mrreport',
     134            granted=True))
     135        # Login as reports officer
     136        self.browser.open(self.login_path)
     137        self.browser.getControl(name="form.login").value = 'mrreport'
     138        self.browser.getControl(name="form.password").value = SECRET
     139        self.browser.getControl("Login").click()
    115140        self.browser.open('http://localhost/app/reports')
    116141        self.assertEqual(self.browser.headers['Status'], '200 Ok')
     
    148173        logcontent = open(logfile).read()
    149174        self.assertTrue(
    150             'INFO - zope.mgr - students.reports.level_report.LevelReportGeneratorPage - '
     175            'INFO - mrreport - students.reports.level_report.LevelReportGeneratorPage - '
    151176            'report %s created: Level Report (faculty=fac1, department=dep1, '
    152177            'certificate=CERT1, session=2010, level=100)'
     
    154179            )
    155180        self.assertTrue(
    156             'INFO - zope.mgr - students.reports.level_report.LevelReportPDFView - '
     181            'INFO - mrreport - students.reports.level_report.LevelReportPDFView - '
    157182            'report %s downloaded: LevelReport_rno%s'
    158183            % (job_id, job_id) in logcontent
    159184            )
    160185        self.assertTrue(
    161             'INFO - zope.mgr - browser.reports.ReportsContainerPage - '
     186            'INFO - mrreport - browser.reports.ReportsContainerPage - '
    162187            'report %s discarded' % job_id in logcontent
    163188            )
Note: See TracChangeset for help on using the changeset viewer.