@@ -254,28 +254,37 @@ def _register_test_connection(port, db_alias, preserved):
254254 return _conn
255255
256256
257- def _resolve_settings (conn_setting , remove_pass = True ):
258-
259- if conn_setting and isinstance (conn_setting , dict ):
260- conn_setting = dict (((k [8 :] if k .startswith ("MONGODB_" ) else k ), v ) for k , v in conn_setting .items () if v is not None )
261- conn_setting = dict ((k .lower (), v ) for k , v in conn_setting .items ())
262-
263- resolved = {
264- 'alias' : conn_setting .get ('alias' , DEFAULT_CONNECTION_NAME ),
265- 'name' : conn_setting .get ('db' , 'test' ),
266- 'host' : conn_setting .get ('host' , 'localhost' ),
267- 'port' : conn_setting .get ('port' , 27017 ),
268- 'username' : conn_setting .get ('username' ),
269- # default to ReadPreference.PRIMARY if no read_preference is supplied
270- 'read_preference' : conn_setting .get ('read_preference' , ReadPreference .PRIMARY ),
271- }
272- if 'replicaset' in conn_setting :
273- resolved ['replicaSet' ] = conn_setting .pop ('replicaset' )
274- if not remove_pass :
275- resolved ['password' ] = conn_setting .get ('password' )
276- return resolved
277-
278- return conn_setting
257+ def _resolve_settings (settings , remove_pass = True ):
258+
259+ if settings and isinstance (settings , dict ):
260+ resolved_setting = dict ()
261+ for k , v in settings .items ():
262+ if k .startswith ("MONGODB_" ):
263+ resolved_setting [k [8 :].lower ()] = v
264+ else :
265+ resolved_setting [k .lower ()] = v
266+
267+ resolved_setting ['alias' ] = resolved_setting .get ('alias' , DEFAULT_CONNECTION_NAME )
268+ if (resolved_setting .has_key ('db' )):
269+ resolved_setting ['name' ] = resolved_setting .pop ('db' )
270+ else :
271+ resolved_setting ['name' ] = 'test'
272+ resolved_setting ['host' ] = resolved_setting .get ('host' , 'localhost' )
273+ resolved_setting ['port' ] = resolved_setting .get ('port' , 27017 )
274+ resolved_setting ['username' ] = resolved_setting .get ('username' , None )
275+ # default to ReadPreference.PRIMARY if no read_preference is supplied
276+ resolved_setting ['read_preference' ] = resolved_setting .get ('read_preference' , ReadPreference .PRIMARY )
277+ if 'replicaset' in resolved_setting :
278+ resolved_setting ['replicaSet' ] = resolved_setting .pop ('replicaset' )
279+ if remove_pass :
280+ try :
281+ del resolved_setting ['password' ]
282+ except KeyError :
283+ # Password not specified, ignore.
284+ pass
285+
286+ return resolved_setting
287+ return settings
279288
280289
281290def fetch_connection_settings (config , remove_pass = True ):
0 commit comments