mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 17:12:03 +00:00
3fdc2aae19
I have added two tests. One checks the usual scenario where the instance's config specifies a `http_port`. In that case, we expect the `http_port` to be part of the response. The other scenario checks what happens when the config doesn't specify a `http_port`. It's hard to nail down the expectation there without hardcoding the error response (which is not what we generally want) but I'm mainly checking that no HTTP port is mentioned. This particular test would have failed before my previous fix, because the TCP handler wouldn't have managed to send back an HTTP response and `requests.post` would have thrown an exception.
43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
"""Test HTTP responses given by the TCP Handler."""
|
|
from pathlib import Path
|
|
import pytest
|
|
from helpers.cluster import ClickHouseCluster
|
|
import requests
|
|
|
|
cluster = ClickHouseCluster(__file__)
|
|
|
|
node_with_http = cluster.add_instance(
|
|
'node_with_http',
|
|
main_configs=["configs/config.d/http-port-31337.xml"]
|
|
)
|
|
HTTP_PORT = 31337
|
|
|
|
node_without_http = cluster.add_instance(
|
|
'node_without_http',
|
|
main_configs=["configs/config.d/no-http-port.xml"]
|
|
)
|
|
|
|
@pytest.fixture(scope="module")
|
|
def start_cluster():
|
|
try:
|
|
cluster.start()
|
|
yield cluster
|
|
|
|
finally:
|
|
cluster.shutdown()
|
|
|
|
def test_request_to_http_full_instance(start_cluster):
|
|
response = requests.get(
|
|
f'http://{node_with_http.ip_address}:9000'
|
|
)
|
|
assert response.status_code == 400
|
|
assert str(HTTP_PORT) in response.text
|
|
|
|
def test_request_to_http_less_instance(start_cluster):
|
|
response = requests.post(
|
|
f'http://{node_without_http.ip_address}:9000'
|
|
)
|
|
assert response.status_code == 400
|
|
assert str(HTTP_PORT) not in response.text
|
|
assert "8123" not in response.text
|