Ignore:
Timestamp:
6 Nov 2015, 05:43:37 (9 years ago)
Author:
Henrik Bettermann
Message:

Implement portal maintenance mode.

File:
1 edited

Legend:

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

    r13199 r13394  
    2222import tempfile
    2323import os
     24import grok
    2425from zc.async.testing import wait_for_result
    2526from zope.component import createObject, getUtility
     
    506507        self.browser.getControl(name="form.password").value = 'secret'
    507508        self.browser.getControl("Login").click()
    508         # Yeah, office logged in.
     509        # Yeah, officer logged in.
    509510        self.assertMatches(
    510511            '...You logged in...', self.browser.contents)
     
    531532        return
    532533
     534    def test_maintenance_mode(self):
     535        config = grok.getSite()['configuration']
     536        self.app['users'].addUser(
     537            'officer', 'secret', title='Bob Officer', email='bob@abcd.ng')
     538        self.browser.open('http://localhost/app/login')
     539        self.browser.getControl(name="form.login").value = 'officer'
     540        self.browser.getControl(name="form.password").value = 'secret'
     541        self.browser.getControl("Login").click()
     542        # Officer logged in.
     543        self.assertMatches('...You logged in...', self.browser.contents)
     544        self.assertTrue("Bob Officer" in self.browser.contents)
     545        # If maintenance mode is enabled, officer is immediately logged out.
     546        config.maintmode_enabled_by = u'any_user'
     547        self.assertRaises(
     548            Unauthorized, self.browser.open, 'http://localhost/app/faculties')
     549        self.browser.open('http://localhost/app/login')
     550        self.assertMatches(
     551            '...The portal is in maintenance mode...',
     552            self.browser.contents)
     553        # Officers really can't login if maintenance mode is enabled.
     554        self.browser.getControl(name="form.login").value = 'officer'
     555        self.browser.getControl(name="form.password").value = 'secret'
     556        self.browser.getControl("Login").click()
     557        # A second warning is raised.
     558        self.assertMatches(
     559            '...The portal is in maintenance mode. You can\'t login!...',
     560            self.browser.contents)
     561        # Offficer can login if s/he is the blocker.
     562        config.maintmode_enabled_by = u'officer'
     563        self.browser.getControl(name="form.login").value = 'officer'
     564        self.browser.getControl(name="form.password").value = 'secret'
     565        self.browser.getControl("Login").click()
     566        self.assertTrue('You logged in' in self.browser.contents)
     567        self.assertTrue('Logout' in self.browser.contents)
     568        return
     569
    533570    def test_sources_overview(self):
    534571        self.browser.open('http://localhost/app/sources')
Note: See TracChangeset for help on using the changeset viewer.