Visitar URL original
rework test into integration, since CH instance is needed · feast-dev/feast@a3b9977 · GitHub
Skip to content

Commit a3b9977

Browse files
astronautasntkathole
authored andcommitted
rework test into integration, since CH instance is needed
Signed-off-by: lukas.valatka <lukas.valatka@cast.ai>
1 parent a05c6ab commit a3b9977

2 files changed

Lines changed: 28 additions & 51 deletions

File tree

‎sdk/python/feast/infra/offline_stores/contrib/clickhouse_offline_store/tests/data_source.py‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
from feast.infra.offline_stores.contrib.clickhouse_offline_store.clickhouse_source import (
1616
ClickhouseSource,
1717
)
18+
from feast.infra.utils.clickhouse.clickhouse_config import ClickhouseConfig
19+
from feast.infra.utils.clickhouse.connection_utils import get_client
1820
from tests.integration.feature_repos.universal.data_source_creator import (
1921
DataSourceCreator,
2022
)
@@ -114,3 +116,29 @@ def create_saved_dataset_destination(self):
114116

115117
def teardown(self):
116118
pass
119+
120+
121+
def test_get_client_with_additional_params(clickhouse_container):
122+
"""
123+
Test that get_client works with a real ClickHouse container and properly passes
124+
additional settings like send_receive_timeout.
125+
"""
126+
# Create config with custom send_receive_timeout
127+
config = ClickhouseConfig(
128+
host=clickhouse_container.get_container_host_ip(),
129+
port=clickhouse_container.get_exposed_port(8123),
130+
user=CLICKHOUSE_USER,
131+
password=CLICKHOUSE_PASSWORD,
132+
database=CLICKHOUSE_OFFLINE_DB,
133+
additional_client_args={"send_receive_timeout": 60},
134+
)
135+
136+
# Get client and verify it works
137+
client = get_client(config)
138+
139+
# Verify client is connected and functional by running a simple query
140+
result = client.query("SELECT 1 AS test_value")
141+
assert result.result_rows == [(1,)]
142+
143+
# Verify the send_receive_timeout was applied
144+
assert client.timeout._read == 60

‎sdk/python/tests/unit/infra/offline_stores/test_clickhouse.py‎

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
from unittest.mock import MagicMock, patch
44

55
import pytest
6-
from testcontainers.clickhouse import ClickHouseContainer
7-
from testcontainers.core.waiting_utils import wait_for_logs
86

97
from feast.infra.utils.clickhouse.clickhouse_config import ClickhouseConfig
108
from feast.infra.utils.clickhouse.connection_utils import get_client, thread_local
@@ -135,52 +133,3 @@ def test_clickhouse_config_handles_none_additional_client_args():
135133
config = ClickhouseConfig(**raw_config)
136134

137135
assert config.additional_client_args is None
138-
139-
140-
@pytest.fixture(scope="module")
141-
def clickhouse_container():
142-
"""Start a ClickHouse container for integration testing."""
143-
container = ClickHouseContainer(
144-
username="default",
145-
password="password",
146-
dbname="default",
147-
)
148-
container.start()
149-
150-
log_string_to_wait_for = "Logging errors to"
151-
waited = wait_for_logs(
152-
container=container,
153-
predicate=log_string_to_wait_for,
154-
timeout=30,
155-
interval=10,
156-
)
157-
logger.info("Waited for %s seconds until ClickHouse container was up", waited)
158-
159-
yield container
160-
container.stop()
161-
162-
163-
def test_get_client_with_additional_params(clickhouse_container):
164-
"""
165-
Test that get_client works with a real ClickHouse container and properly passes
166-
additional settings like send_receive_timeout.
167-
"""
168-
# Create config with custom send_receive_timeout
169-
config = ClickhouseConfig(
170-
host=clickhouse_container.get_container_host_ip(),
171-
port=clickhouse_container.get_exposed_port(8123),
172-
user="default",
173-
password="password",
174-
database="default",
175-
additional_client_args={"send_receive_timeout": 60},
176-
)
177-
178-
# Get client and verify it works
179-
client = get_client(config)
180-
181-
# Verify client is connected and functional by running a simple query
182-
result = client.query("SELECT 1 AS test_value")
183-
assert result.result_rows == [(1,)]
184-
185-
# Verify the send_receive_timeout was applied
186-
assert client.timeout._read == 60

0 commit comments

Comments
 (0)