summaryrefslogtreecommitdiff
path: root/tests/test_session.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_session.py')
-rw-r--r--tests/test_session.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test_session.py b/tests/test_session.py
new file mode 100644
index 0000000..621d284
--- /dev/null
+++ b/tests/test_session.py
@@ -0,0 +1,52 @@
+from paste.session import SessionMiddleware
+from paste.fixture import TestApp
+
+info = []
+
+def wsgi_app(environ, start_response):
+ pi = environ.get('PATH_INFO', '')
+ if pi in ('/get1', '/get2'):
+ if pi == '/get1':
+ sess = environ['paste.session.factory']()
+ start_response('200 OK', [('content-type', 'text/plain')])
+ if pi == '/get2':
+ sess = environ['paste.session.factory']()
+ if 'info' in sess:
+ return [str(sess['info'])]
+ else:
+ return ['no-info']
+ if pi in ('/put1', '/put2'):
+ if pi == '/put1':
+ sess = environ['paste.session.factory']()
+ sess['info'] = info[0]
+ start_response('200 OK', [('content-type', 'text/plain')])
+ if pi == '/put2':
+ sess = environ['paste.session.factory']()
+ sess['info'] = info[0]
+ return ['foo']
+
+wsgi_app = SessionMiddleware(wsgi_app)
+
+def test_app1():
+ app = TestApp(wsgi_app)
+ res = app.get('/get1')
+ assert res.body == 'no-info'
+ res = app.get('/get2')
+ assert res.body == 'no-info'
+ info[:] = ['test']
+ res = app.get('/put1')
+ res = app.get('/get1')
+ assert res.body == 'test'
+ res = app.get('/get2')
+ assert res.body == 'test'
+
+def test_app2():
+ app = TestApp(wsgi_app)
+ info[:] = ['fluff']
+ res = app.get('/put2')
+ res = app.get('/get1')
+ assert res.body == 'fluff'
+ res = app.get('/get2')
+ assert res.body == 'fluff'
+
+