From 695d4b7ebb1a7ba0fcab9ef276bc9b119f13630e Mon Sep 17 00:00:00 2001 From: Ahmed Adel Date: Thu, 25 Jul 2024 14:46:16 +0000 Subject: [PATCH] Using url.translate_connect_args for connection parameters translation --- src/sqlalchemy_solr/http.py | 28 ++++++++------------- src/sqlalchemy_solr/solrdbapi/_solrdbapi.py | 18 +++++++++---- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/sqlalchemy_solr/http.py b/src/sqlalchemy_solr/http.py index c5b6d14..a5a1803 100755 --- a/src/sqlalchemy_solr/http.py +++ b/src/sqlalchemy_solr/http.py @@ -51,7 +51,7 @@ def __init__(self, **kw): self.port = None self.server_path = None self.collection = None - self.db = None + self.database = None self.username = None self.password = None self.token = None @@ -62,22 +62,18 @@ def __init__(self, **kw): def create_connect_args(self, url): - url_port = url.port or 8047 - qargs = {"host": url.host, "port": url_port} - - db_parts = url.database.split("/") - db = ".".join(db_parts) + qargs = url.translate_connect_args() + qargs.update(url.query) self.proto = "http://" - if "use_ssl" in url.query: - if url.query["use_ssl"] in [True, "True", "true"]: - self.proto = "https://" + if "use_ssl" in url.query and url.query["use_ssl"] in ["True", "true"]: + self.proto = "https://" - if "token" in url.query: - if url.query["token"] is not None: - self.token = url.query["token"] + if "token" in url.query and url.query["token"] is not None: + self.token = url.query["token"] # Mapping server path and collection + db_parts = qargs["database"].split("/") if db_parts[0]: server_path = db_parts[0] else: @@ -92,7 +88,7 @@ def create_connect_args(self, url): self.port = url.port or defaults.PORT self.username = url.username self.password = url.password - self.db = db + self.database = url.database self.server_path = server_path self.collection = collection @@ -109,14 +105,10 @@ def create_connect_args(self, url): # Utilize this session in other methods. self.session = session - qargs.update(url.query) - qargs["db"] = db qargs["server_path"] = server_path qargs["collection"] = collection - qargs["username"] = url.username - qargs["password"] = url.password - return [], qargs + return ([], qargs) def get_table_names(self, connection, schema=None, **kw): local_payload = _PAYLOAD.copy() diff --git a/src/sqlalchemy_solr/solrdbapi/_solrdbapi.py b/src/sqlalchemy_solr/solrdbapi/_solrdbapi.py index 78b6f26..becf782 100755 --- a/src/sqlalchemy_solr/solrdbapi/_solrdbapi.py +++ b/src/sqlalchemy_solr/solrdbapi/_solrdbapi.py @@ -292,7 +292,7 @@ class Connection: def __init__( self, host, - db, + database, username, password, server_path, @@ -303,7 +303,7 @@ def __init__( ): self.host = host - self.db = db + self.database = database self.username = username self.password = password self.server_path = server_path @@ -356,7 +356,7 @@ def rollback(self): def cursor(self): return Cursor( self.host, - self.db, + self.database, self.username, self.password, self.server_path, @@ -371,7 +371,7 @@ def cursor(self): # pylint: disable=too-many-arguments def connect( host, - db, + database, server_path, collection, port=defaults.PORT, @@ -405,7 +405,15 @@ def connect( raise DatabaseHTTPError(response.text, response.status_code) return Connection( - host, db, username, password, server_path, collection, port, proto, session + host, + database, + username, + password, + server_path, + collection, + port, + proto, + session, )