Skip to content

Commit 3fb4d55

Browse files
committed
Don't resolve 'MONGODB_SETTINGS'.
1 parent 141e04b commit 3fb4d55

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

flask_mongoengine/connection.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -254,24 +254,30 @@ def _register_test_connection(port, db_alias, preserved):
254254
return _conn
255255

256256

257-
def _resolve_settings(settings, remove_pass=True):
257+
def _resolve_settings(settings, settings_prefix=None, remove_pass=True):
258258

259259
if settings and isinstance(settings, dict):
260260
resolved_settings = dict()
261261
for k, v in settings.items():
262-
if k.startswith("MONGODB_"):
263-
resolved_settings[k[8:].lower()] = v
262+
if settings_prefix > 0:
263+
# Only resolve parameters that contain the prefix, ignoring the rest.
264+
if k.startswith(settings_prefix):
265+
resolved_settings[k[len(settings_prefix):].lower()] = v
264266
else:
267+
# If no prefix is provided then we assume that all parameters are relevant for the DB connection string.
265268
resolved_settings[k.lower()] = v
266269

267-
resolved_settings['alias'] = resolved_settings.get('alias', DEFAULT_CONNECTION_NAME)
270+
# Add various default values.
271+
resolved_settings['alias'] = resolved_settings.get('alias', DEFAULT_CONNECTION_NAME)
268272
if (resolved_settings.has_key('db')):
269273
resolved_settings['name'] = resolved_settings.pop('db')
270274
else:
271275
resolved_settings['name'] = 'test'
276+
272277
resolved_settings['host'] = resolved_settings.get('host', 'localhost')
273278
resolved_settings['port'] = resolved_settings.get('port', 27017)
274279
resolved_settings['username'] = resolved_settings.get('username', None)
280+
275281
# default to ReadPreference.PRIMARY if no read_preference is supplied
276282
resolved_settings['read_preference'] = resolved_settings.get('read_preference', ReadPreference.PRIMARY)
277283
if 'replicaset' in resolved_settings:
@@ -284,6 +290,7 @@ def _resolve_settings(settings, remove_pass=True):
284290
pass
285291

286292
return resolved_settings
293+
287294
return settings
288295

289296

@@ -315,14 +322,14 @@ def fetch_connection_settings(config, remove_pass=True):
315322
# List of connection settings.
316323
settings_list = []
317324
for setting in settings:
318-
settings_list.append(_resolve_settings(setting, remove_pass))
325+
settings_list.append(_resolve_settings(setting, remove_pass=remove_pass))
319326
return settings_list
320327
else:
321328
# Connection settings provided as a dictionary.
322-
return _resolve_settings(settings, remove_pass)
329+
return _resolve_settings(settings, remove_pass=remove_pass)
323330
else:
324331
# Connection settings provided in standard format.
325-
return _resolve_settings(config, remove_pass)
332+
return _resolve_settings(config, settings_prefix='MONGODB_', remove_pass=remove_pass)
326333

327334

328335
def create_connection(config, app):

0 commit comments

Comments
 (0)