1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
import test
test.prefer_parent_path()
import cherrypy, os
def setup_server():
class Root:
def testGen(self):
counter = cherrypy.session.get('counter', 0) + 1
cherrypy.session['counter'] = counter
yield str(counter)
testGen.exposed = True
def testStr(self):
counter = cherrypy.session.get('counter', 0) + 1
cherrypy.session['counter'] = counter
return str(counter)
testStr.exposed = True
def setsessiontype(self, newtype):
cherrypy.config.update({'session_filter.storage_type': newtype})
setsessiontype.exposed = True
cherrypy.root = Root()
cherrypy.config.update({
'server.log_to_screen': False,
'server.environment': 'production',
'session_filter.on': True,
'session_filter.storage_type' : 'file',
'session_filter.storage_path' : '.',
})
import helper
class SessionFilterTest(helper.CPWebCase):
def testSessionFilter(self):
self.getPage('/testStr')
self.assertBody('1')
self.getPage('/testGen', self.cookies)
self.assertBody('2')
self.getPage('/testStr', self.cookies)
self.assertBody('3')
self.getPage('/setsessiontype/file')
self.getPage('/testStr')
self.assertBody('1')
self.getPage('/testGen', self.cookies)
self.assertBody('2')
self.getPage('/testStr', self.cookies)
self.assertBody('3')
# Clean up session files
for fname in os.listdir('.'):
if fname.startswith('session-'):
os.unlink(fname)
if __name__ == "__main__":
setup_server()
helper.testmain()
|