Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/databricks/labs/dqx/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def _verify_workspace_client(ws: WorkspaceClient) -> WorkspaceClient:
"""
# Using reflection to set right value for _product_info as dqx for telemetry
product_info = getattr(ws.config, '_product_info')
if product_info[0] != "dqx":
if product_info is None or product_info[0] != "dqx":
setattr(ws.config, '_product_info', ('dqx', __version__))

# make sure Databricks workspace is accessible
Expand Down
25 changes: 24 additions & 1 deletion tests/unit/test_engine.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
from datetime import datetime, timezone
from unittest.mock import create_autospec
from unittest.mock import create_autospec, Mock
import pytest
from pyspark.sql import SparkSession
from databricks.sdk.errors import DatabricksError
from databricks.sdk import WorkspaceClient

from databricks.labs.dqx.__about__ import __version__
from databricks.labs.dqx.config import ExtraParams
from databricks.labs.dqx.engine import DQEngine, DQEngineCore
from databricks.labs.dqx.metrics_observer import DQMetricsObserver
Expand Down Expand Up @@ -72,3 +73,25 @@ def test_get_streaming_metrics_listener_no_observer(mock_workspace_client, mock_
engine = DQEngine(mock_workspace_client, mock_spark)
with pytest.raises(InvalidParameterError, match="Metrics cannot be collected for engine with no observer"):
engine.get_streaming_metrics_listener(metrics_config=OutputConfig(location="dummy"))


def test_verify_workspace_client_with_null_product_info(mock_spark):
Comment thread
mwojtyczka marked this conversation as resolved.
ws = create_autospec(WorkspaceClient)
mock_config = Mock()
mock_config._product_info = None
ws.config = mock_config

DQEngine(spark=mock_spark, workspace_client=ws)

assert mock_config._product_info == ('dqx', __version__)


def test_verify_workspace_client_with_non_dqx_product_info(mock_spark):
ws = create_autospec(WorkspaceClient)
mock_config = Mock()
mock_config._product_info = ('other-product', '1.0.0')
ws.config = mock_config

DQEngine(spark=mock_spark, workspace_client=ws)

assert mock_config._product_info == ('dqx', __version__)
Loading