ClickHouse/tests/integration/test_dotnet_client/test.py
2022-03-31 15:56:07 +02:00

68 lines
1.6 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",
"--force-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