ClickHouse/tests/integration/test_dotnet_client/test.py
2024-10-01 11:48:05 +02:00

66 lines
1.6 KiB
Python

# coding: utf-8
import datetime
import logging
import math
import os
import time
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(
cluster.compose_cmd(
"-f",
docker_compose,
"up",
"--force-recreate",
"-d",
"--no-build",
)
)
yield docker.from_env().containers.get(cluster.get_instance_docker_id("dotnet1"))
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