@@ -73,6 +73,11 @@ def _validate_settings(is_test, temp_db, preserved, conn_host):
7373 'only when `TESTING` is set to true.'
7474 raise InvalidSettingsError (msg )
7575
76+ def __get_app_config (key ):
77+ return (_app_instance .get (key , False )
78+ if isinstance (_app_instance , dict )
79+ else _app_instance .config .get (key , False ))
80+
7681def get_connection (alias = DEFAULT_CONNECTION_NAME , reconnect = False ):
7782 global _connections
7883 set_global_attributes ()
@@ -98,9 +103,9 @@ def get_connection(alias=DEFAULT_CONNECTION_NAME, reconnect=False):
98103 conn_settings .pop ('password' , None )
99104 conn_settings .pop ('authentication_source' , None )
100105
101- is_test = _app_instance . config . get ('TESTING' , False )
102- temp_db = _app_instance . config . get ('TEMP_DB' , False )
103- preserved = _app_instance . config . get ('PRESERVE_TEMP_DB' , False )
106+ is_test = __get_app_config ('TESTING' )
107+ temp_db = __get_app_config ('TEMP_DB' )
108+ preserved = __get_app_config ('PRESERVE_TEMP_DB' )
104109
105110 # Validation
106111 _validate_settings (is_test , temp_db , preserved , conn_host )
@@ -351,7 +356,7 @@ def create_connection(config, app):
351356 @param app: instance of flask.Flask
352357 """
353358 global _connection_settings , _app_instance
354- _app_instance = app
359+ _app_instance = app if app else config
355360
356361 if config is None or not isinstance (config , dict ):
357362 raise Exception ("Invalid application configuration" );
@@ -363,6 +368,7 @@ def create_connection(config, app):
363368 connections = {}
364369 for conn_setting in conn_settings :
365370 alias = conn_setting ['alias' ]
371+ _connection_settings [alias ] = conn_setting
366372 connections [alias ] = get_connection (alias )
367373 return connections
368374 else :
0 commit comments