5DOCKERTEST_WORKER = os.getenv(
'DOCKERTEST_WORKER',
'')
20def test_tcp_connection(host: str, port: int, timeout: float = 1.0) -> bool:
22 with socket.create_connection((host, port), timeout=timeout):
28def wait_tcp_connection(host: str, port: int, timeout: float = 1.0) -> bool:
29 start_time = time.perf_counter()
31 time_passed = time.perf_counter() - start_time
32 if time_passed >= timeout:
35 if test_tcp_connection(
38 timeout=timeout - time_passed,
45def ensure_non_root_user() -> None:
46 if not os.getenv(
'TESTSUITE_ALLOW_ROOT')
and os.getuid() == 0:
47 raise RootUserForbiddenError(
'Running testsuite as root is forbidden')
50def getenv_str(key: str, default: str) -> str:
51 env_value = os.getenv(key)
57def getenv_int(key: str, default: int) -> int:
58 env_value = os.getenv(key)
62 result = int(env_value)
63 except ValueError
as err:
64 raise EnvironmentVariableError(
65 f
'{key} environment variable is expected to have integer value. '
66 f
'Actual value: {env_value}',
72def getenv_float(key: str, default: float) -> float:
73 env_value = os.getenv(key)
77 result = float(env_value)
78 except ValueError
as err:
79 raise EnvironmentVariableError(
80 f
'{key} environment variable is expected to have float value. '
81 f
'Actual value: {env_value}',
89 default: tuple[int, ...],
91 env_value = os.getenv(key,
None)
95 result = tuple(int(value)
for value
in env_value.split(
','))
96 except ValueError
as err:
97 raise EnvironmentVariableError(
98 f
'{key} environment variable is expected to be a comma-separated '
99 f
'list of integers. Actual value: {env_value}',