Improve code for the creation of a Rookeries app.
This commit is contained in:
parent
d208c74645
commit
63abecc4a8
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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]
|
||||||
|
|
Loading…
Reference in New Issue