Switch to side-by-side view

--- a/Allura/allura/tests/test_middleware.py
+++ b/Allura/allura/tests/test_middleware.py
@@ -1,12 +1,15 @@
 from os import path, environ
+from collections import defaultdict
 
 from tg import config
 from paste.deploy import loadapp
 from paste.script.appinstall import SetupCommand
 from paste.deploy import appconfig
+from mock import patch
 
 from alluratest.controller import setup_basic_test, get_config_file
 from allura.config.middleware import make_app
+from allura.lib.custom_middleware import Environ
 
 
 def setUp(self):
@@ -16,3 +19,42 @@
 def test_make_app():
     conf = appconfig('config:%s#main' % get_config_file(), relative_to=config.here)
     make_app(conf.global_conf, **conf.local_conf)
+
+#@patch('sf.phpsession.SFXSessionMgr')
+@patch('sqlalchemy.create_engine')
+@patch('sfx.middleware.configure_databases')
+def test_all_middleware(mk2, session_mgr):
+    print session_mgr
+    #, sf.phpsession.SFXSessionMgr
+    from sf.phpsession import SFXSessionMgr; print SFXSessionMgr
+
+    conf = appconfig('config:%s#main' % get_config_file(), relative_to=config.here)
+    conf.local_conf['auth.method'] = 'sfx'
+    conf.local_conf['stats.sample_rate'] = '0.25'
+    conf.local_conf['sfx.sys_session_db_username'] = 'foo'
+    conf.local_conf['sfx.sys_session_db_password'] = 'passwd'
+    conf.local_conf['sfx.sys_session_db_host'] = 'localhost'
+    conf.local_conf['sfx.sys_session_db_database'] = 'db'
+    conf.local_conf['sfx.sys_session_db_pool_recycle'] = 1
+    conf.local_conf['sfx.sys_session_db_pool_size'] = 1
+    conf.local_conf['sfx.sys_session_db_pool_max_overflow'] = 1
+    conf.local_conf['sfx.scheme'] = 'dontcare'
+    app = make_app(conf.global_conf, **conf.local_conf)
+    d = defaultdict(lambda: "str")
+    d['wsgi.multiprocess'] = False
+    d['paste.evalexception'] = False
+    from cStringIO import StringIO
+    d['wsgi.errors'] = StringIO()
+    env = Environ()
+    env.set_environment(d)
+    app(d, lambda *a, **kw: None)
+
+def test_environ():
+    d = {'foo': 'qwe', 'bar': 1234}
+    env = Environ()
+    env.set_environment(d)
+    assert env['foo'] == d['foo']
+    env['baz'] = True
+    assert d['baz'] == True
+    del env['foo']
+    assert 'foo' not in d