def test_accessed_setdefault(self): provideAdapter(testingSession) request = TestRequest() session = ISession(request) self.assertEquals(None, session.last_accessed) self.assertEquals(False, session.accessed()) session.setdefault('foo', 'bar') self.failIf(session.last_accessed is None) self.assertEquals(True, session.accessed())
def test_accessed_contains(self): provideAdapter(testingSession) request = TestRequest() session = ISession(request) self.assertEquals(None, session.last_accessed) self.assertEquals(False, session.accessed()) 'foo' in session self.failIf(session.last_accessed is None) self.assertEquals(True, session.accessed())
def test_get_del(self): provideAdapter(testingSession) request = TestRequest() session = ISession(request) session['foo'] = 'bar' self.assertEquals('bar', session['foo']) del session['foo'] self.failIf('foo' in session) self.failIf(session.last_accessed is None) self.assertEquals(True, session.accessed())
def closeSession(request): """Close the session, and, if necessary, set any required cookies """ session = ISession(request, None) if session is not None: if session.accessed(): session.persist() sessionInstructions = session.request if sessionInstructions.get('set_cookie', False): if sessionInstructions['cookie_out']: cookieObj = session.cookie[session.key] key = cookieObj.key value = session.cookie.value_encode(cookieObj.value)[1] args = dict([(k, v) for k, v in cookieObj.items() if v]) args.setdefault('path', session._path) if args.get('httponly'): args.pop('httponly') args['http_only'] = True request.response.setCookie(key, value, **args)