Added tests for _file and _path in S3 storage.

This commit is contained in:
Vladimir Chebotarev 2020-01-28 01:09:21 +03:00
parent 11a5cab7bd
commit f98de4e098

View File

@ -199,17 +199,19 @@ def test_put_get_with_globs(cluster):
bucket = cluster.minio_bucket bucket = cluster.minio_bucket
instance = cluster.instances["dummy"] # type: ClickHouseInstance instance = cluster.instances["dummy"] # type: ClickHouseInstance
table_format = "column1 UInt32, column2 UInt32, column3 UInt32" table_format = "column1 UInt32, column2 UInt32, column3 UInt32"
max_path = ""
for i in range(10): for i in range(10):
for j in range(10): for j in range(10):
path = "{}_{}/{}.csv".format(i, random.choice(['a', 'b', 'c', 'd']), j) path = "{}_{}/{}.csv".format(i, random.choice(['a', 'b', 'c', 'd']), j)
max_path = max(path, max_path)
values = "({},{},{})".format(i, j, i+j) values = "({},{},{})".format(i, j, i+j)
query = "insert into table function s3('http://{}:{}/{}/{}', 'CSV', '{}') values {}".format( query = "insert into table function s3('http://{}:{}/{}/{}', 'CSV', '{}') values {}".format(
cluster.minio_host, cluster.minio_port, bucket, path, table_format, values) cluster.minio_host, cluster.minio_port, bucket, path, table_format, values)
run_query(instance, query) run_query(instance, query)
query = "select sum(column1), sum(column2), sum(column3) from s3('http://{}:{}/{}/*_{{a,b,c,d}}/%3f.csv', 'CSV', '{}')".format( query = "select sum(column1), sum(column2), sum(column3), min(_file), max(_path) from s3('http://{}:{}/{}/*_{{a,b,c,d}}/%3f.csv', 'CSV', '{}')".format(
cluster.minio_redirect_host, cluster.minio_redirect_port, bucket, table_format) cluster.minio_redirect_host, cluster.minio_redirect_port, bucket, table_format)
assert run_query(instance, query).splitlines() == ["450\t450\t900"] assert run_query(instance, query).splitlines() == ["450\t450\t900\t0.csv\t{bucket}/{max_path}".format(bucket=bucket, max_path=max_path)]
# Test multipart put. # Test multipart put.