Files
connect/tests/integration_tests/test_raw_insert.py
Joe SpadolaandGitHub 55dcd7db4c Replace pylint with ruff for linting and formatting (#703)
* migrate from pylint to ruff

* ruff format/lint switch over

* add formatting commit

* update changelog
2026-04-02 16:09:59 -07:00

39 lines
1.7 KiB
Python

from collections.abc import Callable
from pathlib import Path
from clickhouse_connect.driver import Client
def test_raw_insert(param_client: Client, call, table_context: Callable):
with table_context("test_raw_insert", ["`weir'd` String", "value String"]):
csv = "value1\nvalue2"
call(param_client.raw_insert, "test_raw_insert", ['"weir\'d"'], csv.encode(), fmt="CSV")
result = call(param_client.query, "SELECT * FROM test_raw_insert")
assert result.result_set[1][0] == "value2"
call(param_client.command, "TRUNCATE TABLE test_raw_insert")
tsv = "weird1\tvalue__`2\nweird2\tvalue77"
call(param_client.raw_insert, "test_raw_insert", ["`weir'd`", "value"], tsv, fmt="TSV")
result = call(param_client.query, "SELECT * FROM test_raw_insert")
assert result.result_set[0][1] == "value__`2"
assert result.result_set[1][1] == "value77"
def test_raw_insert_compression(param_client: Client, call, table_context: Callable):
data_file = f"{Path(__file__).parent}/movies.csv.gz"
with open(data_file, mode="rb") as movies_file:
data = movies_file.read()
with table_context("test_gzip_movies", ["movie String", "year UInt16", "rating Decimal32(3)"]):
call(
param_client.raw_insert,
"test_gzip_movies",
None,
data,
fmt="CSV",
compression="gzip",
settings={"input_format_allow_errors_ratio": 0.2, "input_format_allow_errors_num": 5},
)
res = call(param_client.query, "SELECT count() as count, sum(rating) as rating, max(year) as year FROM test_gzip_movies").first_item
assert res["count"] == 248
assert res["year"] == 2022