Skip to content

Commit 98141fd

Browse files
committed
test: handle pending kernel geospatial release
Signed-off-by: Cathleen Yan <58714163+cathleeny@users.noreply.github.com>
1 parent 57c96fc commit 98141fd

3 files changed

Lines changed: 20 additions & 16 deletions

File tree

‎src/databricks/sql/backend/kernel/client.py‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,7 @@ def _kernel_geospatial_kwargs(value: bool) -> Dict[str, bool]:
179179
"""
180180
if not isinstance(value, bool):
181181
raise ValueError(
182-
"enable_geospatial_support must be a bool; "
183-
f"got {type(value).__name__}"
182+
"enable_geospatial_support must be a bool; " f"got {type(value).__name__}"
184183
)
185184
if not _kernel_session_accepts_kwarg("enable_geospatial_support"):
186185
raise NotSupportedError(
@@ -288,9 +287,7 @@ def __init__(
288287
# bytes}`` through pyarrow; False requests WKT / EWKT strings. This is
289288
# intentionally separate from ``session_configuration``: it is never
290289
# forwarded to SEA.
291-
self._enable_geospatial_support = kwargs.get(
292-
"enable_geospatial_support", True
293-
)
290+
self._enable_geospatial_support = kwargs.get("enable_geospatial_support", True)
294291
# Kernel telemetry phase 7 adds binding/runtime identity and
295292
# telemetry config kwargs directly to ``databricks_sql_kernel.Session``.
296293
self._telemetry_options = kwargs.get("telemetry_options") or {}

‎src/databricks/sql/session.py‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -314,9 +314,7 @@ def _create_backend(
314314
retry_options=kernel_retry_options,
315315
request_timeout_secs=kwargs.get("_socket_timeout"),
316316
max_connections=kwargs.get("_pool_maxsize") or None,
317-
enable_geospatial_support=kwargs.get(
318-
"enable_geospatial_support", True
319-
),
317+
enable_geospatial_support=kwargs.get("enable_geospatial_support", True),
320318
telemetry_options=kernel_telemetry_options,
321319
)
322320

‎tests/unit/test_session.py‎

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -796,14 +796,23 @@ def test_connect_use_kernel_instantiates_real_kernel_backend(self):
796796
def test_enable_geospatial_support_matches_real_kernel_signature(self):
797797
self._real_kernel_or_skip()
798798

799-
from databricks.sql.backend.kernel.client import _kernel_geospatial_kwargs
800-
801-
assert _kernel_geospatial_kwargs(True) == {
802-
"enable_geospatial_support": True
803-
}
804-
assert _kernel_geospatial_kwargs(False) == {
805-
"enable_geospatial_support": False
806-
}
799+
from databricks.sql.backend.kernel.client import (
800+
_kernel_geospatial_kwargs,
801+
_kernel_session_accepts_kwarg,
802+
)
803+
804+
# The ordinary kernel unit-test tier installs the latest published
805+
# wheel, which may lag the KERNEL_REV source pin while the matching
806+
# kernel change is still in flight. Validate the compatibility error
807+
# in that case; once the wheel includes the typed option, validate
808+
# both values against its real PyO3 signature.
809+
if not _kernel_session_accepts_kwarg("enable_geospatial_support"):
810+
with pytest.raises(NotSupportedError, match="newer databricks-sql-kernel"):
811+
_kernel_geospatial_kwargs(True)
812+
return
813+
814+
assert _kernel_geospatial_kwargs(True) == {"enable_geospatial_support": True}
815+
assert _kernel_geospatial_kwargs(False) == {"enable_geospatial_support": False}
807816

808817

809818
class TestReydenThriftFallback:

0 commit comments

Comments
 (0)