Пример #1
0
    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())
Пример #2
0
    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())
Пример #3
0
    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())
Пример #4
0
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)