ClickHouse/tests/integration/test_dotnet_client/test.py
2022-01-03 03:44:03 +03:00

48 lines
1.5 KiB
Python

# coding: utf-8
import datetime
import math
import os
import time
import logging
import docker
import pytest
from docker.models.containers import Container
from helpers.cluster import ClickHouseCluster, get_docker_compose_path, run_and_check
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
DOCKER_COMPOSE_PATH = get_docker_compose_path()
cluster = ClickHouseCluster(__file__)
node = cluster.add_instance('node',
user_configs=["configs/users.xml"], env_variables={'UBSAN_OPTIONS': 'print_stacktrace=1'})
@pytest.fixture(scope="module")
def started_cluster():
cluster.start()
try:
yield cluster
finally:
cluster.shutdown()
@pytest.fixture(scope='module')
def dotnet_container():
docker_compose = os.path.join(DOCKER_COMPOSE_PATH, 'docker_compose_dotnet_client.yml')
run_and_check(
['docker-compose', '-p', cluster.project_name, '-f', docker_compose, 'up', '--no-recreate', '-d', '--no-build'])
yield docker.from_env().containers.get(cluster.project_name + '_dotnet1_1')
def test_dotnet_client(started_cluster, dotnet_container):
with open(os.path.join(SCRIPT_DIR, 'dotnet.reference'), 'rb') as fp:
reference = fp.read()
code, (stdout, stderr) = dotnet_container.exec_run(
'dotnet run --host {host} --port {port} --user default --password 123 --database default'
.format(host=started_cluster.get_instance_ip('node'), port=8123), demux=True)
assert code == 0
assert stdout == reference