# 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