mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 01:25:21 +00:00
Added integration test for s3 table function
This commit is contained in:
parent
7e183675e5
commit
9a07489151
1
tests/integration/test_s3_table_functions/__init__.py
Normal file
1
tests/integration/test_s3_table_functions/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
#!/usr/bin/env python3
|
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
|
||||||
|
<!-- Using named collections 22.4+ -->
|
||||||
|
<clickhouse>
|
||||||
|
<named_collections>
|
||||||
|
<nc_s3>
|
||||||
|
<url>http://minio1:9001/root/data/</url>
|
||||||
|
<access_key_id>minio</access_key_id>
|
||||||
|
<secret_access_key>minio123</secret_access_key>
|
||||||
|
</nc_s3>
|
||||||
|
</named_collections>
|
||||||
|
</clickhouse>
|
96
tests/integration/test_s3_table_functions/test.py
Normal file
96
tests/integration/test_s3_table_functions/test.py
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
import logging
|
||||||
|
import pytest
|
||||||
|
from helpers.cluster import ClickHouseCluster
|
||||||
|
from helpers.network import PartitionManager
|
||||||
|
from helpers.client import QueryRuntimeException
|
||||||
|
|
||||||
|
|
||||||
|
cluster = ClickHouseCluster(__file__)
|
||||||
|
node = cluster.add_instance(
|
||||||
|
"node",
|
||||||
|
main_configs=[
|
||||||
|
"configs/config.d/minio.xml",
|
||||||
|
],
|
||||||
|
with_minio=True
|
||||||
|
)
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
"s3_max_connections": "1",
|
||||||
|
"max_insert_threads": "1",
|
||||||
|
"s3_truncate_on_insert": "1",
|
||||||
|
"s3_min_upload_part_size": "33554432",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="module")
|
||||||
|
def started_cluster():
|
||||||
|
try:
|
||||||
|
logging.info("Starting cluster...")
|
||||||
|
cluster.start()
|
||||||
|
logging.info("Cluster started")
|
||||||
|
|
||||||
|
yield cluster
|
||||||
|
finally:
|
||||||
|
logging.info("Stopping cluster")
|
||||||
|
cluster.shutdown()
|
||||||
|
logging.info("Cluster stopped")
|
||||||
|
|
||||||
|
|
||||||
|
def test_s3_table_functions(started_cluster):
|
||||||
|
"""
|
||||||
|
Simple test to check s3 table function functionalities
|
||||||
|
"""
|
||||||
|
node.query(
|
||||||
|
"""
|
||||||
|
INSERT INTO FUNCTION s3
|
||||||
|
(
|
||||||
|
nc_s3,
|
||||||
|
filename = 'test_file.tsv.gz',
|
||||||
|
format = 'TSV',
|
||||||
|
structure = 'number UInt64',
|
||||||
|
compression_method = 'gz'
|
||||||
|
)
|
||||||
|
SELECT * FROM numbers(1000000)
|
||||||
|
""",
|
||||||
|
settings=settings,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert(
|
||||||
|
node.query(
|
||||||
|
"""
|
||||||
|
SELECT count(*) FROM s3
|
||||||
|
(
|
||||||
|
nc_s3,
|
||||||
|
filename = 'test_file.tsv.gz',
|
||||||
|
format = 'TSV',
|
||||||
|
structure = 'number UInt64',
|
||||||
|
compression_method = 'gz'
|
||||||
|
);
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
== "1000000\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_s3_table_functions_timeouts(started_cluster):
|
||||||
|
"""
|
||||||
|
Test with timeout limit of 1200ms.
|
||||||
|
This should raise an Exception and pass.
|
||||||
|
"""
|
||||||
|
with PartitionManager() as pm:
|
||||||
|
pm.add_network_delay(node, 1200)
|
||||||
|
|
||||||
|
with pytest.raises(QueryRuntimeException):
|
||||||
|
node.query(
|
||||||
|
"""
|
||||||
|
INSERT INTO FUNCTION s3
|
||||||
|
(
|
||||||
|
nc_s3,
|
||||||
|
filename = 'test_file.tsv.gz',
|
||||||
|
format = 'TSV',
|
||||||
|
structure = 'number UInt64',
|
||||||
|
compression_method = 'gz'
|
||||||
|
)
|
||||||
|
SELECT * FROM numbers(1000000)
|
||||||
|
""",
|
||||||
|
settings=settings,
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user