userver: samples/tcp_service/tests/conftest.py
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
samples/tcp_service/tests/conftest.py
1# /// [service_non_http_health_checker]
2import pytest
3from pytest_userver.utils import net
4
5pytest_plugins = ['pytest_userver.plugins.core']
6
7USERVER_CONFIG_HOOKS = ['userver_config_tcp_port']
8
9
10@pytest.fixture(scope='session')
11def userver_config_tcp_port(choose_free_port):
12 def patch_config(config, _config_vars) -> None:
13 components = config['components_manager']['components']
14 tcp_hello = components['tcp-hello']
15 tcp_hello['port'] = choose_free_port(tcp_hello['port'])
16
17 return patch_config
18
19
20@pytest.fixture(name='tcp_service_port', scope='session')
21def _tcp_service_port(service_config) -> int:
22 components = service_config['components_manager']['components']
23 tcp_hello = components.get('tcp-hello')
24 assert tcp_hello, 'No "tcp-hello" component found'
25 return int(tcp_hello['port'])
26
27
28@pytest.fixture(scope='session')
29def service_non_http_health_checks(
30 service_config,
31 tcp_service_port,
32) -> net.HealthChecks:
33 checks = net.get_health_checks_info(service_config)
34 checks.tcp.append(net.HostPort(host='localhost', port=tcp_service_port))
35 return checks
36 # /// [service_non_http_health_checker]