def setup_config(command, filename, section, vars): conf = appconfig('config:' + filename + '#' + section.split(':')[1]) load_environment(conf.global_conf, conf.local_conf) from twirlip.model import soClasses, hub from twirlip.model.config import create_defaults if filename.endswith("test.ini"): for table in soClasses[::-1]: table.dropTable(ifExists=True) constraints = [] for table in soClasses: _constraints = table.createTable(ifNotExists=True, applyConstraints=False) if _constraints is not None: constraints += _constraints connection = hub.hub.getConnection() for constraint in constraints: connection.query(constraint) create_defaults() print """Now start the application and visit /config to hook
def make_app(global_conf, full_stack=True, **app_conf): """Create a Pylons WSGI application and return it ``global_conf`` The inherited configuration for this application. Normally from the [DEFAULT] section of the Paste ini file. ``full_stack`` Whether or not this application provides a full WSGI stack (by default, meaning it handles its own exceptions and errors). Disable full_stack when this application is "managed" by another WSGI middleware. ``app_conf`` The application's local configuration. Normally specified in the [app:<name>] section of the Paste ini file (where <name> defaults to main). """ # Configure the Pylons environment load_environment(global_conf, app_conf) # The Pylons WSGI app app = PylonsApp() # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) # Establish the Registry for this application app = RegistryManager(app) if app_conf.get('openplans_wrapper') == 'TestingEnv': users = {'anon' : 'Anonymous', 'auth' : 'Authenticated', 'member' : 'ProjectMember', 'contentmanager' : 'ProjectContentManager', 'admin' : 'ProjectAdmin' } from twirlip.lib.testing_env import TestingEnv app = TestingEnv(app, users) app = CookieAuth(app, app_conf) elif app_conf.get('openplans_wrapper') == 'CookieAuth': app = HeaderSignatureCheckingMiddleware(app, app_conf) login_file = app_conf['cabochon_password_file'] username, password = file(login_file).read().strip().split(":") if username: app = WSSEAuthMiddleware(app, {username : password}, required=False) app = SupervisorErrorMiddleware(app) if asbool(full_stack): # Handle Python exceptions app = ErrorHandler(app, global_conf, error_template=error_template, **config['pylons.errorware']) # Display error documents for 401, 403, 404 status codes (and # 500 when debug is disabled) app = ErrorDocuments(app, global_conf, mapper=error_mapper, **app_conf) # Static files javascripts_app = StaticJavascripts() static_app = StaticURLParser(config['pylons.paths']['static_files']) app = Cascade([static_app, javascripts_app, app]) return app