mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-19 16:20:50 +00:00
Extend the set of test cases in the integration test
This commit is contained in:
parent
505b4d0112
commit
9027ab968e
@ -11,14 +11,20 @@
|
||||
</two>
|
||||
</disks>
|
||||
<policies>
|
||||
<disks_in_order>
|
||||
<policy1>
|
||||
<volumes>
|
||||
<single>
|
||||
<disk>one</disk>
|
||||
</single>
|
||||
</volumes>
|
||||
</policy1>
|
||||
<policy2>
|
||||
<volumes>
|
||||
<single>
|
||||
<disk>two</disk>
|
||||
</single>
|
||||
</volumes>
|
||||
</disks_in_order>
|
||||
</policy2>
|
||||
</policies>
|
||||
</storage_configuration>
|
||||
<backups>
|
||||
|
@ -35,28 +35,42 @@ def new_backup_name():
|
||||
return f"File('/backups/{backup_id_counter}/')"
|
||||
|
||||
|
||||
def create_and_fill_table():
|
||||
def create_table_backup(backup_name, storage_policy=None):
|
||||
instance.query("CREATE DATABASE test")
|
||||
instance.query("CREATE TABLE test.table(x UInt32) ENGINE=MergeTree ORDER BY x")
|
||||
create_query = "CREATE TABLE test.table(x UInt32) ENGINE=MergeTree ORDER BY x"
|
||||
if storage_policy is not None:
|
||||
create_query += f" SETTINGS storage_policy = '{storage_policy}'"
|
||||
instance.query(create_query)
|
||||
instance.query(f"INSERT INTO test.table SELECT number FROM numbers(10)")
|
||||
|
||||
|
||||
@pytest.mark.parametrize("policy", ["disks_in_order", "", None])
|
||||
def test_restore_table(policy):
|
||||
backup_name = new_backup_name()
|
||||
create_and_fill_table()
|
||||
instance.query(f"BACKUP TABLE test.table TO {backup_name}")
|
||||
instance.query("DROP TABLE test.table SYNC")
|
||||
|
||||
|
||||
def restore_table(backup_name, storage_policy=None):
|
||||
restore_query = f"RESTORE TABLE test.table FROM {backup_name}"
|
||||
if policy is None:
|
||||
policy = "default"
|
||||
else:
|
||||
restore_query += f" SETTINGS storage_policy = '{policy}'"
|
||||
if policy == "":
|
||||
policy = "default"
|
||||
if storage_policy is not None:
|
||||
restore_query += f" SETTINGS storage_policy = '{storage_policy}'"
|
||||
instance.query(restore_query)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"origin_policy, restore_policy, expected_policy",
|
||||
[
|
||||
(None, "", "default"),
|
||||
(None, None, "default"),
|
||||
(None, "policy1", "policy1"),
|
||||
("policy1", "policy1", "policy1"),
|
||||
("policy1", "policy2", "policy2"),
|
||||
("policy1", "", "default"),
|
||||
("policy1", None, "policy1"),
|
||||
],
|
||||
)
|
||||
def test_storage_policies(origin_policy, restore_policy, expected_policy):
|
||||
backup_name = new_backup_name()
|
||||
create_table_backup(backup_name, origin_policy)
|
||||
restore_table(backup_name, restore_policy)
|
||||
|
||||
assert (
|
||||
instance.query("SELECT storage_policy FROM system.tables WHERE name='table'")
|
||||
== f"{policy}\n"
|
||||
== f"{expected_policy}\n"
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user