web/test/unittest_session.py
changeset 6032 52f9a43d8e08
parent 5785 c0661b963ced
child 6366 1806148d6ce8
equal deleted inserted replaced
6030:a1544ca8913e 6032:52f9a43d8e08
     5 :copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
     5 :copyright: 2001-2010 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2.
     6 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     6 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     7 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     7 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     8 """
     8 """
     9 from cubicweb.devtools.testlib import CubicWebTC
     9 from cubicweb.devtools.testlib import CubicWebTC
       
    10 from cubicweb.web import InvalidSession
    10 
    11 
    11 class SessionTC(CubicWebTC):
    12 class SessionTC(CubicWebTC):
    12 
    13 
    13     def test_auto_reconnection(self):
    14     def test_session_expiration(self):
    14         sm = self.app.session_handler.session_manager
    15         sm = self.app.session_handler.session_manager
    15         # make is if the web session has been opened by the session manager
    16         # make is if the web session has been opened by the session manager
    16         sm._sessions[self.cnx.sessionid] = self.websession
    17         sm._sessions[self.cnx.sessionid] = self.websession
    17         sessionid = self.websession.sessionid
    18         sessionid = self.websession.sessionid
    18         self.assertEquals(len(sm._sessions), 1)
    19         self.assertEquals(len(sm._sessions), 1)
    21         self.repo.close(sessionid)
    22         self.repo.close(sessionid)
    22         try:
    23         try:
    23             # fake an incoming http query with sessionid in session cookie
    24             # fake an incoming http query with sessionid in session cookie
    24             # don't use self.request() which try to call req.set_session
    25             # don't use self.request() which try to call req.set_session
    25             req = self.requestcls(self.vreg)
    26             req = self.requestcls(self.vreg)
    26             websession = sm.get_session(req, sessionid)
    27             self.assertRaises(InvalidSession, sm.get_session, req, sessionid)
    27             self.assertEquals(len(sm._sessions), 1)
    28             self.assertEquals(len(sm._sessions), 0)
    28             self.assertIs(websession, self.websession)
       
    29             self.assertEquals(websession.sessionid, sessionid)
       
    30             self.assertNotEquals(websession.sessionid, websession.cnx.sessionid)
       
    31         finally:
    29         finally:
    32             # avoid error in tearDown by telling this connection is closed...
    30             # avoid error in tearDown by telling this connection is closed...
    33             self.cnx._closed = True
    31             self.cnx._closed = True
    34 
    32 
    35 if __name__ == '__main__':
    33 if __name__ == '__main__':