def configure_app(app, db=None): """Build routes and exception handlers :param app: falcon WSGI app :param db: Database engine (ElasticSearch) :return: """ if not db: db = driver.get_db() # setup freezer policy policy.setup_policy(CONF) for exception_class in freezer_api_exc.exception_handlers_catalog: app.add_error_handler(exception_class, exception_class.handle) endpoint_catalog = [ ('/v1', v1.public_endpoints(db)), ('/', [('', versions.Resource())]) ] for version_path, endpoints in endpoint_catalog: for route, resource in endpoints: app.add_route(version_path + route, resource) return app
def build_app_v2(): """Building routes and forming the root freezer-api app This uses the 'middleware' named argument to specify middleware for falcon instead of the 'before' and 'after' hooks that were removed after 0.3.0 (both approaches were available for versions 0.2.0 - 0.3.0) :return: falcon WSGI app """ # injecting FreezerContext & hooks middleware_list = [ utils.FuncMiddleware(hook) for hook in utils.before_hooks() ] middleware_list.append(middleware.RequireJSON()) middleware_list.append(middleware.JSONTranslator()) app = falcon.API(middleware=middleware_list) db = driver.get_db() # setup freezer policy policy.setup_policy(CONF) for exception_class in freezer_api_exc.exception_handlers_catalog: app.add_error_handler(exception_class, exception_class.handle) endpoint_catalog = [('', v2.public_endpoints(db))] for version_path, endpoints in endpoint_catalog: for route, resource in endpoints: app.add_route(version_path + route, resource) return app
def setUp(self): super(FreezerBaseTestCase, self).setUp() self._config_fixture = self.useFixture(cfg_fixture.Config()) config.parse_args(args=[]) self.addCleanup(CONF.reset) self.test_dir = self.useFixture(fixtures.TempDir()).path self.conf_dir = os.path.join(self.test_dir, 'etc') os.makedirs(self.conf_dir) policy.ENFORCER = None policy.setup_policy(CONF)
def configure_app(app, db=None): """Build routes and exception handlers :param app: falcon WSGI app :param db: Database engine (ElasticSearch) :return: """ if not db: db = driver.get_db() # setup freezer policy policy.setup_policy(CONF) for exception_class in freezer_api_exc.exception_handlers_catalog: app.add_error_handler(exception_class, exception_class.handle) endpoint_catalog = [('', v1.public_endpoints(db))] for version_path, endpoints in endpoint_catalog: for route, resource in endpoints: app.add_route(version_path + route, resource) return app