Make uri style connections use parameters not specified in the uri, as well as other keyword arguments

This commit is contained in:
Robert Kajic 2012-02-28 23:18:22 +01:00
parent 32fc4152a7
commit 3c7bf50089
2 changed files with 7 additions and 9 deletions

View File

@ -45,14 +45,12 @@ def register_connection(alias, name, host='localhost', port=27017,
if uri_dict.get('database') is None: if uri_dict.get('database') is None:
raise ConnectionError("If using URI style connection include "\ raise ConnectionError("If using URI style connection include "\
"database name in string") "database name in string")
uri_dict['name'] = uri_dict.get('database') node = uri_dict['nodelist'][0]
_connection_settings[alias] = { host = node[0]
'host': host, port = node[1]
'name': uri_dict.get('database'), name = uri_dict.get('database')
'username': uri_dict.get('username'), username = uri_dict.get('username') or username
'password': uri_dict.get('password') password = uri_dict.get('password') or password
}
return
_connection_settings[alias] = { _connection_settings[alias] = {
'name': name, 'name': name,

View File

@ -41,7 +41,7 @@ class ConnectionTest(unittest.TestCase):
c.admin.authenticate("admin", "password") c.admin.authenticate("admin", "password")
c.mongoenginetest.add_user("username", "password") c.mongoenginetest.add_user("username", "password")
self.assertRaises(ConnectionError, connect, "testdb_uri_bad", host='mongodb://test:password@localhost/mongoenginetest') self.assertRaises(ConnectionError, connect, "testdb_uri_bad", host='mongodb://test:password@localhost')
connect("testdb_uri", host='mongodb://username:password@localhost/mongoenginetest') connect("testdb_uri", host='mongodb://username:password@localhost/mongoenginetest')