2017-06-15 20:08:26 +00:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
|
2020-09-16 04:26:10 +00:00
|
|
|
|
2017-06-15 20:08:26 +00:00
|
|
|
@pytest.fixture(scope="module")
|
|
|
|
def started_cluster():
|
|
|
|
try:
|
2017-06-16 16:00:53 +00:00
|
|
|
cluster = ClickHouseCluster(__file__)
|
2020-01-24 20:14:42 +00:00
|
|
|
instance = cluster.add_instance(
|
|
|
|
"dummy", clickhouse_path_dir="clickhouse_path", stay_alive=True
|
|
|
|
)
|
2017-06-15 20:08:26 +00:00
|
|
|
cluster.start()
|
2017-06-16 16:00:53 +00:00
|
|
|
|
|
|
|
cluster_fail = ClickHouseCluster(__file__, name="fail")
|
|
|
|
instance_fail = cluster_fail.add_instance(
|
|
|
|
"dummy_fail", clickhouse_path_dir="clickhouse_path_fail"
|
|
|
|
)
|
|
|
|
with pytest.raises(Exception):
|
|
|
|
cluster_fail.start()
|
2020-09-16 04:26:10 +00:00
|
|
|
cluster_fail.shutdown() # cleanup
|
2017-06-16 16:00:53 +00:00
|
|
|
|
2017-06-15 20:08:26 +00:00
|
|
|
yield cluster
|
|
|
|
|
|
|
|
finally:
|
|
|
|
cluster.shutdown()
|
|
|
|
|
|
|
|
|
|
|
|
def test_sophisticated_default(started_cluster):
|
2017-06-16 16:00:53 +00:00
|
|
|
instance = started_cluster.instances["dummy"]
|
2017-06-15 20:08:26 +00:00
|
|
|
instance.query("INSERT INTO sophisticated_default (c) VALUES (0)")
|
|
|
|
assert instance.query("SELECT a, b, c FROM sophisticated_default") == "3\t9\t0\n"
|
|
|
|
|
2019-12-12 14:47:31 +00:00
|
|
|
|
|
|
|
def test_partially_dropped_tables(started_cluster):
|
|
|
|
instance = started_cluster.instances["dummy"]
|
2020-09-16 04:26:10 +00:00
|
|
|
assert (
|
|
|
|
instance.exec_in_container(
|
|
|
|
["bash", "-c", "find /var/lib/clickhouse/*/default -name *.sql* | sort"],
|
|
|
|
privileged=True,
|
|
|
|
user="root",
|
|
|
|
)
|
|
|
|
== "/var/lib/clickhouse/metadata/default/should_be_restored.sql\n"
|
|
|
|
"/var/lib/clickhouse/metadata/default/sophisticated_default.sql\n"
|
2022-03-22 16:39:58 +00:00
|
|
|
)
|
2019-12-12 14:47:31 +00:00
|
|
|
assert instance.query("SELECT n FROM should_be_restored") == "1\n2\n3\n"
|
|
|
|
assert (
|
|
|
|
instance.query(
|
|
|
|
"SELECT count() FROM system.tables WHERE name='should_be_dropped'"
|
|
|
|
)
|
|
|
|
== "0\n"
|
2022-03-22 16:39:58 +00:00
|
|
|
)
|