From 34c6d00d460fe9a7f17d90a4ea1c3eda45b1d631 Mon Sep 17 00:00:00 2001 From: Shubham Padkonde Date: Tue, 22 Sep 2026 13:42:26 +0530 Subject: [PATCH] fix: accept case-insensitive HTTPS schemes in Thrift connections Signed-off-by: Shubham Padkonde --- src/databricks/sql/backend/thrift_backend.py | 2 +- tests/unit/test_thrift_backend.py | 22 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/databricks/sql/backend/thrift_backend.py b/src/databricks/sql/backend/thrift_backend.py index fcf363cf0..65e0fc158 100644 --- a/src/databricks/sql/backend/thrift_backend.py +++ b/src/databricks/sql/backend/thrift_backend.py @@ -158,7 +158,7 @@ def __init__( uri = "{host}:{port}/{path}".format( host=server_hostname.rstrip("/"), port=port, path=http_path.lstrip("/") ) - if not uri.startswith("https://"): + if not uri.lower().startswith("https://"): uri = "https://" + uri else: raise ValueError("No valid connection settings.") diff --git a/tests/unit/test_thrift_backend.py b/tests/unit/test_thrift_backend.py index ddcb378ff..a0370eca2 100644 --- a/tests/unit/test_thrift_backend.py +++ b/tests/unit/test_thrift_backend.py @@ -70,6 +70,28 @@ class ThriftBackendTestSuite(unittest.TestCase): ttypes.TGetColumnsResp, ] + def test_server_hostname_https_scheme_is_case_insensitive(self): + for scheme in ("", "https://", "HTTPS://", "HtTpS://"): + with self.subTest(scheme=scheme): + backend = ThriftDatabricksClient( + scheme + "httpbin.invalid/", + 8443, + "/sql/1.0/warehouses/test", + [], + auth_provider=AuthProvider(), + ssl_options=SSLOptions(), + http_client=MagicMock(), + ) + try: + self.assertEqual(backend._transport.scheme, "https") + self.assertEqual(backend._transport.host, "httpbin.invalid") + self.assertEqual(backend._transport.port, 8443) + self.assertEqual( + backend._transport.path, "/sql/1.0/warehouses/test" + ) + finally: + backend._transport.close() + def test_make_request_checks_thrift_status_code(self): mock_response = Mock() mock_response.status.statusCode = ttypes.TStatusCode.ERROR_STATUS