diff --git a/mongoengine/connection.py b/mongoengine/connection.py index 70eac1e7..815ffa01 100644 --- a/mongoengine/connection.py +++ b/mongoengine/connection.py @@ -45,14 +45,12 @@ def register_connection(alias, name, host='localhost', port=27017, if uri_dict.get('database') is None: raise ConnectionError("If using URI style connection include "\ "database name in string") - uri_dict['name'] = uri_dict.get('database') - _connection_settings[alias] = { - 'host': host, - 'name': uri_dict.get('database'), - 'username': uri_dict.get('username'), - 'password': uri_dict.get('password') - } - return + node = uri_dict['nodelist'][0] + host = node[0] + port = node[1] + name = uri_dict.get('database') + username = uri_dict.get('username') or username + password = uri_dict.get('password') or password _connection_settings[alias] = { 'name': name, diff --git a/tests/connection.py b/tests/connection.py index ce20a54a..9aad142f 100644 --- a/tests/connection.py +++ b/tests/connection.py @@ -41,7 +41,7 @@ class ConnectionTest(unittest.TestCase): c.admin.authenticate("admin", "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')