def create_app(): ''' Create an instance of the app. ''' app = Flask(__name__, template_folder="templates") ordbok = FlaskOrdbok(app) ordbok.load() app.config.update(ordbok) #app.config.update(config or {}) app.register_blueprint(views) babel.init_app(app) cache.init_app(app) csrf.init_app(app) mail.init_app(app) bcrypt.init_app(app) #security.init_app(app, bcrypt) s3.init_app(app) configure_uploads(app, (photos)) # Setup Flask-Security user_datastore = SQLAlchemyUserDatastore(db, User, Role) security.init_app(app, datastore=user_datastore) db.init_app(app) #login_manager.init_app(app) assets.init_app(app) app.jinja_env.filters['slug'] = lambda x: slugify(x).lower() app.jinja_env.filters['noop'] = lambda x: '' # Constant that should be available for all templates. app.jinja_env.globals['ORG_TYPES'] = ORG_TYPES app.jinja_env.globals['CONTENT'] = CONTENT app.jinja_env.globals['NOI_COLORS'] = NOI_COLORS app.jinja_env.globals['LEVELS'] = LEVELS app.jinja_env.globals['DOMAINS'] = DOMAINS app.jinja_env.globals['QUESTIONS_BY_ID'] = QUESTIONS_BY_ID return app
class FlaskOrdbokTestCase(OrdbokTestCase): def setUp(self): self.app = Flask(os.getcwd()) # fudged files think they are in cwd self.ordbok = FlaskOrdbok(app=self.app) @fudge.patch('six.moves.builtins.open') def test_flask_config_update(self, fudged_open): fudged_open.is_callable().calls(fake_file_factory(fudged_config_files)) self.ordbok.load() self.app.config.update(self.ordbok) self.assertEquals(self.app.config['ENVIRONMENT'], 'development') self.assertEquals(self.app.config['SECRET_KEY'], 'keep out!') self.assertTrue(self.app.config['DEBUG']) self.assertEquals(self.app.config['SQLALCHEMY_DATABASE_URL'], 'sqlite:///tmp/database.db') self.assertTrue(self.app.config['SQLALCHEMY_ECHO']) @mock.patch.object(Flask, 'run') def test_flask_reloader(self, fudged_flask_run): self.ordbok.load() self.app.debug = True self.ordbok.app_run(self.app) fudged_flask_run.assert_called() fudged_flask_run.assert_called_with( extra_files=self.ordbok.config_file_names) @mock.patch.object(Flask, 'run') def test_flask_reloader_debug_off(self, fudged_flask_run): self.ordbok.load() self.ordbok.app_run(self.app) fudged_flask_run.assert_called() fudged_flask_run.assert_called_with() # no extra files @mock.patch.object(Flask, 'run') def test_flask_reloader_use_reloader_false(self, fudged_flask_run): self.ordbok.load() self.ordbok.app_run(self.app, use_reloader=False) fudged_flask_run.assert_called() fudged_flask_run.assert_called_with( use_reloader=False) # no extra files
class FlaskOrdbokTestCase(OrdbokTestCase): def setUp(self): self.app = Flask(os.getcwd()) # fudged files think they are in cwd self.ordbok = FlaskOrdbok(app=self.app) @fudge.patch('six.moves.builtins.open') def test_flask_config_update(self, fudged_open): fudged_open.is_callable().calls(fake_file_factory(fudged_config_files)) self.ordbok.load() self.app.config.update(self.ordbok) self.assertEquals(self.app.config['ENVIRONMENT'], 'development') self.assertEquals(self.app.config['SECRET_KEY'], 'keep out!') self.assertTrue(self.app.config['DEBUG']) self.assertEquals(self.app.config['SQLALCHEMY_DATABASE_URL'], 'sqlite:///tmp/database.db') self.assertTrue(self.app.config['SQLALCHEMY_ECHO']) @mock.patch.object(Flask, 'run') def test_flask_reloader(self, fudged_flask_run): self.ordbok.load() self.app.debug = True self.ordbok.app_run(self.app) fudged_flask_run.assert_called() fudged_flask_run.assert_called_with( extra_files=self.ordbok.config_file_names) @mock.patch.object(Flask, 'run') def test_flask_reloader_debug_off(self, fudged_flask_run): self.ordbok.load() self.ordbok.app_run(self.app) fudged_flask_run.assert_called() fudged_flask_run.assert_called_with() # no extra files @mock.patch.object(Flask, 'run') def test_flask_reloader_use_reloader_false(self, fudged_flask_run): self.ordbok.load() self.ordbok.app_run(self.app, use_reloader=False) fudged_flask_run.assert_called() fudged_flask_run.assert_called_with(use_reloader=False) # no extra files
# App imports import managers.metadata #import language.LANG_AEME as LANG # Convert the module variables to a JSON string to send to the template #language = json.dumps({key: value for key, value in LANG.__dict__.iteritems() if not (key.startswith('__') or key.startswith('_') or key.islower())}) # Define the WSGI application object app = Flask(__name__) #app = Flask(__name__, instance_relative_config=True) application = app # our hosting requires application in passenger_wsgi # Configurations from ordbok.flask_helper import FlaskOrdbok ordbok = FlaskOrdbok(app) ordbok.load() app.config.update(ordbok) # Sample HTTP error handling @app.errorhandler(404) def not_found(error): return render_template('404.html'), 404 # Build Menu def buildMenu(): config = app.config site = config["SITE_URL"] menu = config["MENU"] menu_str = '<ul id="menu-list" class="nav navbar-nav">' menu_str += '<li><a href="'+site+'">Home <span class="sr-only">(current)</span></a></li>' menu_str += """
from os import environ from flask import Flask from flask_rq2 import RQ from flask_restful import Api from ordbok.flask_helper import FlaskOrdbok from docsbox.logs import GraylogLogger app = Flask(__name__) ordbok = FlaskOrdbok() ordbok.init_app(app) ordbok.load() app.config.update(ordbok) REDIS_URL = environ.get("REDIS_URL", app.config["REDIS_URL"]) app.config.update({ "REDIS_URL": REDIS_URL, "RQ_REDIS_URL": REDIS_URL, "VIA_URL": environ.get("VIA_URL", app.config["VIA_URL"]), "VIA_CERT_PATH": environ.get("VIA_CERT_PATH", app.config["VIA_CERT_PATH"]), "VIA_ALLOWED_USERS": environ.get("VIA_ALLOWED_USERS", app.config["VIA_ALLOWED_USERS"]), "GRAYLOG_HOST": environ.get("GRAYLOG_HOST", app.config["GRAYLOG_HOST"]), "GRAYLOG_PORT": environ.get("GRAYLOG_PORT", app.config["GRAYLOG_PORT"]), "GRAYLOG_PATH": environ.get("GRAYLOG_PATH", app.config["GRAYLOG_PATH"]), "GRAYLOG_SOURCE": environ.get("GRAYLOG_SOURCE", app.config["GRAYLOG_SOURCE"]) }) api = Api(app) rq = RQ(app) if app.config["GRAYLOG_HOST"]: