# 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