mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 01:25:21 +00:00
Add test.
This commit is contained in:
parent
deeaea004d
commit
6c164905ca
@ -1,31 +1,26 @@
|
||||
import pytest
|
||||
|
||||
from helpers.cluster import ClickHouseCluster
|
||||
from helpers.test_tools import TSV
|
||||
|
||||
uuids = []
|
||||
cluster = ClickHouseCluster(__file__)
|
||||
node1 = cluster.add_instance(
|
||||
"node1", main_configs=["configs/conf.xml"], with_nginx=True
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def cluster():
|
||||
@pytest.fixture(scope="module", autouse=True)
|
||||
def setup_node():
|
||||
try:
|
||||
cluster = ClickHouseCluster(__file__)
|
||||
cluster.add_instance(
|
||||
"node1", main_configs=["configs/conf.xml"], with_nginx=True
|
||||
)
|
||||
cluster.start()
|
||||
|
||||
yield cluster
|
||||
|
||||
node1.query(
|
||||
"insert into table function url(url1) partition by column3 values (1, 2, 3), (3, 2, 1), (1, 3, 2)"
|
||||
)
|
||||
yield
|
||||
finally:
|
||||
cluster.shutdown()
|
||||
|
||||
|
||||
def test_partition_by(cluster):
|
||||
node1 = cluster.instances["node1"]
|
||||
|
||||
node1.query(
|
||||
f"insert into table function url(url1) partition by column3 values (1, 2, 3), (3, 2, 1), (1, 3, 2)"
|
||||
)
|
||||
def test_partition_by():
|
||||
result = node1.query(
|
||||
f"select * from url('http://nginx:80/test_1', 'TSV', 'column1 UInt32, column2 UInt32, column3 UInt32')"
|
||||
)
|
||||
@ -38,3 +33,45 @@ def test_partition_by(cluster):
|
||||
f"select * from url('http://nginx:80/test_3', 'TSV', 'column1 UInt32, column2 UInt32, column3 UInt32')"
|
||||
)
|
||||
assert result.strip() == "1\t2\t3"
|
||||
|
||||
|
||||
def test_table_function_url_access_rights():
|
||||
node1.query("CREATE USER OR REPLACE u1")
|
||||
|
||||
expected_error = "necessary to have grant CREATE TEMPORARY TABLE, URL ON *.*"
|
||||
assert expected_error in node1.query_and_get_error(
|
||||
f"SELECT * FROM url('http://nginx:80/test_1', 'TSV', 'column1 UInt32, column2 UInt32, column3 UInt32')",
|
||||
user="u1",
|
||||
)
|
||||
|
||||
expected_error = "necessary to have grant CREATE TEMPORARY TABLE, URL ON *.*"
|
||||
assert expected_error in node1.query_and_get_error(
|
||||
f"SELECT * FROM url('http://nginx:80/test_1', 'TSV')", user="u1"
|
||||
)
|
||||
|
||||
assert node1.query(
|
||||
f"DESCRIBE TABLE url('http://nginx:80/test_1', 'TSV', 'column1 UInt32, column2 UInt32, column3 UInt32')",
|
||||
user="u1",
|
||||
) == TSV([["column1", "UInt32"], ["column2", "UInt32"], ["column3", "UInt32"]])
|
||||
|
||||
assert node1.query(
|
||||
f"DESCRIBE TABLE url('http://nginx:80/not-exist', 'TSV', 'column1 UInt32, column2 UInt32, column3 UInt32')",
|
||||
user="u1",
|
||||
) == TSV([["column1", "UInt32"], ["column2", "UInt32"], ["column3", "UInt32"]])
|
||||
|
||||
expected_error = "necessary to have grant URL ON *.*"
|
||||
assert expected_error in node1.query_and_get_error(
|
||||
f"DESCRIBE TABLE url('http://nginx:80/test_1', 'TSV')", user="u1"
|
||||
)
|
||||
|
||||
node1.query("GRANT URL ON *.* TO u1")
|
||||
assert node1.query(
|
||||
f"DESCRIBE TABLE url('http://nginx:80/test_1', 'TSV')",
|
||||
user="u1",
|
||||
) == TSV(
|
||||
[
|
||||
["c1", "Nullable(Int64)"],
|
||||
["c2", "Nullable(Int64)"],
|
||||
["c3", "Nullable(Int64)"],
|
||||
]
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user