import pytest from helpers.client import QueryRuntimeException from helpers.cluster import ClickHouseCluster from helpers.test_tools import TSV cluster = ClickHouseCluster(__file__) instance = cluster.add_instance( "instance", user_configs=["configs/combined_profile.xml"] ) q = instance.query @pytest.fixture(scope="module") def started_cluster(): try: cluster.start() yield cluster finally: cluster.shutdown() def test_combined_profile(started_cluster): settings = q( """ SELECT name, value FROM system.settings WHERE name IN ('max_insert_block_size', 'max_network_bytes', 'max_query_size', 'max_parallel_replicas', 'readonly') AND changed ORDER BY name """, user="test_combined_profile", ) expected1 = """\ max_insert_block_size 654321 max_network_bytes 1234567890 max_parallel_replicas 2 max_query_size 400000000 readonly 2""" assert TSV(settings) == TSV(expected1) with pytest.raises(QueryRuntimeException) as exc: q( """ SET max_insert_block_size = 1000; """, user="test_combined_profile", ) assert "max_insert_block_size shouldn't be less than 654320." in str(exc.value) with pytest.raises(QueryRuntimeException) as exc: q( """ SET max_network_bytes = 2000000000; """, user="test_combined_profile", ) assert "max_network_bytes shouldn't be greater than 1234567891." in str(exc.value) with pytest.raises(QueryRuntimeException) as exc: q( """ SET max_parallel_replicas = 1000; """, user="test_combined_profile", ) assert "max_parallel_replicas should not be changed." in str(exc.value) with pytest.raises(QueryRuntimeException) as exc: q( """ SET max_memory_usage = 1000; """, user="test_combined_profile", ) assert "max_memory_usage shouldn't be less than 300000000." in str(exc.value)