ClickHouse: тестирование¶
Собственные тесты ClickHouse в hare идут против серверов ClickHouse в Docker.
Один сервер¶
Тесты одного сервера:
make test_clickhouse_up # ClickHouse 25.8 - HTTP на порту 8124, собственный протокол на 9124
make test_clickhouse # tests/dialects/clickhouse на обоих драйверах
Сервер сам служит себе ClickHouse Keeper — порт 9182 на хосте — и работает с
allow_experimental_transactions (tests/docker/clickhouse): тесты подключаются с
keeper_hosts=127.0.0.1:9182, поэтому серии ключей тестовой базы удаляются вместе с ней, тесты транзакций —
ещё и с transactions=true, а генерируемые ключи берутся из его серий. make test_clickhouse запускает
tests/dialects/clickhouse/ со своими моделями — общим тестовым моделям остального набора нужны ограничения
уникальности и внешние ключи, которых ClickHouse не держит.
Кластер¶
Тесты кластера идут против двух отдельных серверов:
make test_clickhouse_cluster_up # два сервера - HTTP на 8126 и 8127, собственный протокол на 9126 и 9127
make test_clickhouse_cluster # tests/dialects/clickhouse/cluster на обоих драйверах
make test_clickhouse_cluster_down
Серверы образуют один шард из двух реплик (hare_replicated) и два шарда по одному серверу
(hare_sharded); первый сервер — их Keeper (tests/docker/clickhouse_cluster). Без
HARE_TEST_CLICKHOUSE_CLUSTER_DB, которую задаёт make test_clickhouse_cluster, тесты пропускаются.
Каждая версия¶
Матрица тестов запускает и то и другое на каждой версии ClickHouse начиная с 25.8 — сервер и кластер на
версию, каждый на портах из цифр версии (tests/matrix/matrix_ports.py):
make test_clickhouse_matrix_up test_clickhouse_cluster_matrix_up matrix_clickhouse_versions=26.3
make test_matrix MATRIX_OPTIONS="--python 3.14 --suite 'clickhouse-*-26.3'"
make test_clickhouse_matrix_down test_clickhouse_cluster_matrix_down matrix_clickhouse_versions=26.3
Сервер 26.3 слушает 32603 (HTTP), 42603 (собственный протокол) и 62603 (его Keeper), первый узел его
кластера — 52603 и 22603. Тесты блокировки миграций и генерируемых ключей матрица направляет на Keeper
версии через HARE_TEST_CLICKHOUSE_KEEPER_HOSTS (без неё — 127.0.0.1:9182).