Improve code for the creation of a Rookeries app.

This commit is contained in:
Dorian 2017-04-13 17:38:42 -04:00
parent d208c74645
commit 63abecc4a8
3 changed files with 16 additions and 16 deletions

View File

@ -31,23 +31,23 @@ def make_rookeries_app(quiet_log=False):
logger.info("*** Rookeries API Server - version %s ***", __version__) logger.info("*** Rookeries API Server - version %s ***", __version__)
logger.info("Starting Rookeries API server...") logger.info("Starting Rookeries API server...")
web_app = flask.Flask( rookeries_app = flask.Flask(
import_name=__name__, import_name=__name__,
template_folder='../templates', template_folder='../templates',
static_folder='../static') static_folder='../static')
errors.attach_error_handlers_to_api_app(web_app) errors.attach_error_handlers_to_api_app(rookeries_app)
web_app.register_blueprint(main.rookeries_app) rookeries_app.register_blueprint(main.rookeries_app)
logger.info("Configuring Rookeries:") logger.info("Configuring Rookeries:")
web_app = config.configure_web_app(web_app) rookeries_app = config.configure_app(rookeries_app)
for config_key, value in web_app.config.items(): for config_key, value in rookeries_app.config.items():
logger.info(f"{config_key}: {value}") logger.info(f"\t{config_key}: {value}")
logger.info('Initialize component') logger.info('Initialize components...')
database.db.init_app(web_app) database.db.init_app(rookeries_app)
database.migrations.init_app(web_app) database.migrations.init_app(rookeries_app)
security.jwt.init_app(web_app) security.jwt.init_app(rookeries_app)
logger.info("Rookeries API started!") logger.info("Rookeries API started!")
return web_app return rookeries_app

View File

@ -31,7 +31,7 @@ class DefaultConfig(object):
JWT_SECRET_KEY = security.DEFAULT_JWT_SECRET_KEY JWT_SECRET_KEY = security.DEFAULT_JWT_SECRET_KEY
def configure_web_app(web_app): def configure_app(web_app):
"""Configure the app first by its default than by a known filename and than an environment variable.""" """Configure the app first by its default than by a known filename and than an environment variable."""
web_app.config.from_object(DefaultConfig) web_app.config.from_object(DefaultConfig)
env.from_envvars(conf=web_app.config, prefix=ROOKERIES_ENV_CONFIG_PREFIX, as_json=False) env.from_envvars(conf=web_app.config, prefix=ROOKERIES_ENV_CONFIG_PREFIX, as_json=False)

View File

@ -21,7 +21,7 @@ def flask_test_app():
def test_configuration_will_use_default_configuration_class(flask_test_app): def test_configuration_will_use_default_configuration_class(flask_test_app):
config.configure_web_app(flask_test_app) config.configure_app(flask_test_app)
expected_config = config.DefaultConfig() expected_config = config.DefaultConfig()
for key, value in expected_config.__dict__.items(): for key, value in expected_config.__dict__.items():
@ -34,7 +34,7 @@ def test_configuration_will_use_envs_with_appropriate_prefix(flask_test_app):
test_config_value = 'ROOKERIES_CONFIG_VALUE' test_config_value = 'ROOKERIES_CONFIG_VALUE'
with set_config_in_environ(test_config_key, test_config_value): with set_config_in_environ(test_config_key, test_config_value):
config.configure_web_app(flask_test_app) config.configure_app(flask_test_app)
assert test_config_key in flask_test_app.config assert test_config_key in flask_test_app.config
assert test_config_value == flask_test_app.config[test_config_key] assert test_config_value == flask_test_app.config[test_config_key]
@ -44,7 +44,7 @@ def test_configuration_will_skip_envs_with_wrong_prefix(flask_test_app):
test_config_value = 'BAD_CONFIG_VALUE' test_config_value = 'BAD_CONFIG_VALUE'
with set_config_in_environ(test_config_key, test_config_value, prefix='RANDOM_'): with set_config_in_environ(test_config_key, test_config_value, prefix='RANDOM_'):
config.configure_web_app(flask_test_app) config.configure_app(flask_test_app)
assert test_config_key not in flask_test_app.config assert test_config_key not in flask_test_app.config
@ -53,7 +53,7 @@ def test_configuration_from_environment_variable_will_override_default(flask_tes
test_config_value = 'test_environ' test_config_value = 'test_environ'
with set_config_in_environ(test_config_key, test_config_value): with set_config_in_environ(test_config_key, test_config_value):
config.configure_web_app(flask_test_app) config.configure_app(flask_test_app)
assert test_config_key in flask_test_app.config assert test_config_key in flask_test_app.config
assert config.DefaultConfig.JWT_SECRET_KEY != flask_test_app.config[test_config_key] assert config.DefaultConfig.JWT_SECRET_KEY != flask_test_app.config[test_config_key]
assert test_config_value == flask_test_app.config[test_config_key] assert test_config_value == flask_test_app.config[test_config_key]