예제 #1
0
 def test_roundtrip(self):
     for i in range(100):
         sess = util.generate_sessionid()
         dump = util.dump_sessionid(sess)
         assert util.issessionid(dump)
         parsed = util.parse_sessionid(dump)
         assert sess == parsed
     for i in range(100):
         sess = util.generate_sessionid()
         sess = (sess[0], None)
         dump = util.dump_sessionid(sess)
         assert util.issessionid(dump)
         parsed = util.parse_sessionid(dump)
         assert sess == parsed
     for i in range(100):
         sess = util.generate_sessionid()
         sess = (None, sess[1])
         dump = util.dump_sessionid(sess)
         assert util.issessionid(dump)
         parsed = util.parse_sessionid(dump)
         assert sess == parsed
예제 #2
0
파일: session.py 프로젝트: geertj/draco2
 def new(self):
     """Create a new session."""
     session = SessionObject()
     sessionid = generate_sessionid()
     session['id'] = sessionid[0]
     session['last_subsession'] = sessionid[1]
     session['principal'] = self.m_security.principal()
     now = datetime.datetime.now()
     session['create_date'] = now
     session['last_used'] = now
     expire_date = now + datetime.timedelta(seconds=self.m_timeout)
     session['expire_date'] = expire_date
     self.m_transaction.insert(session)
     value = dump_sessionid((sessionid[0], None))
     cookie = Cookie('draco-session', value, expires=expire_date, path='/')
     self.m_response.set_cookie(cookie)
     self.m_session = session
     self.m_sessionid = sessionid
예제 #3
0
 def test_clash(self):
     sessions = set()
     for i in range(100):
         sess = util.generate_sessionid()
         assert sess not in sessions
         sessions.add(sess)