def testRetrieveCookie(self): sessions = [] class MyObserver(Observable): def handleRequest(self, *args, **kwargs): session = self.ctx.session sessions.append(session) yield utils.okHtml + '<html/>' self.handler.addObserver(MyObserver()) headers, _ = parseResponse( asBytes( self.handler.handleRequest(RequestURI='/path', Client=('127.0.0.1', 12345), Headers={}))) headers = headers['Headers'] self.assertTrue('Set-Cookie' in headers, headers) cookie = findCookies(headers, self.cookiestore.cookieName(), 'Set-Cookie')[0] consume( self.handler.handleRequest(RequestURI='/path', Client=('127.0.0.1', 12345), Headers={ 'Cookie': '{0}={1}'.format( self.cookiestore.cookieName(), cookie) })) self.assertEqual(sessions[0], sessions[1]) self.assertEqual(id(sessions[0]), id(sessions[1]))
def testFindCookies(self): cookies = utils.findCookies(Headers={ 'Cookie': 'acookie=somevalue; cookiename=value; othercookie=iets', 'Accept': 'gzip', }, name='cookiename') self.assertEquals(['value'], cookies)
def logout(self, session, Headers, **ignored): session.pop(USER, None) redirectUrl = self._home response = redirectHttp % redirectUrl if not self._rememberMeCookie: yield response return cookieName = self.call.cookieName() for cookie in findCookies(Headers=Headers, name=cookieName): self.call.removeCookie(cookie) yield insertHeader([response], 'Set-Cookie: {}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/'.format(cookieName))
def testRetrieveCookie(self): sessions = [] def handleRequest(session=None, *args, **kwargs): sessions.append(session) yield utils.okHtml + '<html/>' self.observer.handleRequest = handleRequest headers = asString(self.handler.handleRequest(RequestURI='/path', Client=('127.0.0.1', 12345), Headers={})).split(CRLF*2,1)[0] headers = parseHeaders(headers) self.assertTrue('Set-Cookie' in headers, headers) cookie = findCookies(headers, self.cookiestore.cookieName(), 'Set-Cookie')[0] consume(self.handler.handleRequest(RequestURI='/path', Client=('127.0.0.1', 12345), Headers={'Cookie': '{0}={1}'.format(self.cookiestore.cookieName(), cookie)})) self.assertEquals(sessions[0], sessions[1]) self.assertEquals(id(sessions[0]),id(sessions[1]))
def logout(self, session, Headers, **ignored): session.pop(USER, None) redirectUrl = self._home response = redirectHttp % redirectUrl if not self._rememberMeCookie: yield response return cookieName = self.call.cookieName() for cookie in findCookies(Headers=Headers, name=cookieName): self.call.removeCookie(cookie) yield insertHeader( [response], 'Set-Cookie: {}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/'. format(cookieName))
def handleRequest(self, session, Headers, **kwargs): extraHeader = None if 'user' not in session: cookieName = self.call.cookieName() for cookie in findCookies(Headers=Headers, name=cookieName): cookieDict = self.call.validateCookie(cookie) if cookieDict is not None: session['user'] = cookieDict['value'] extraHeader = cookieDict['header'] break yield insertHeader( compose(self.all.handleRequest(session=session, Headers=Headers, **kwargs)), extraHeader )
def handleRequest(self, session, Headers, **kwargs): extraHeader = None if 'user' not in session: cookieName = self.call.cookieName() for cookie in findCookies(Headers=Headers, name=cookieName): cookieDict = self.call.validateCookie(cookie) if cookieDict is not None: session['user'] = cookieDict['value'] extraHeader = cookieDict['header'] break yield insertHeader( compose( self.all.handleRequest(session=session, Headers=Headers, **kwargs)), extraHeader)
def testFindCookies(self): cookies = utils.findCookies(Headers={ 'Cookie':'acookie=somevalue; cookiename=value; othercookie=iets', 'Accept': 'gzip', }, name='cookiename') self.assertEquals(['value'], cookies)