Fix docker compose unit test to remove ARP FLUX warning.

This commit is contained in:
Adam Outler
2026-03-04 01:13:39 +00:00
parent 8ab9d9f395
commit f1496b483b
@@ -317,14 +317,18 @@ def _select_custom_ports(exclude: set[int] | None = None) -> int:
raise RuntimeError("Unable to locate a free high port for compose testing") raise RuntimeError("Unable to locate a free high port for compose testing")
def _make_port_check_hook(ports: tuple[int, ...]) -> Callable[[], None]: def _make_port_check_hook(
ports: tuple[int, ...],
settle_wait_seconds: int = COMPOSE_SETTLE_WAIT_SECONDS,
port_wait_timeout: int = COMPOSE_PORT_WAIT_TIMEOUT,
) -> Callable[[], None]:
"""Return a callback that waits for the provided ports to accept TCP connections.""" """Return a callback that waits for the provided ports to accept TCP connections."""
def _hook() -> None: def _hook() -> None:
for port in ports: for port in ports:
LAST_PORT_SUCCESSES.pop(port, None) LAST_PORT_SUCCESSES.pop(port, None)
time.sleep(COMPOSE_SETTLE_WAIT_SECONDS) time.sleep(settle_wait_seconds)
_wait_for_ports(ports, timeout=COMPOSE_PORT_WAIT_TIMEOUT) _wait_for_ports(ports, timeout=port_wait_timeout)
return _hook return _hook
@@ -853,12 +857,18 @@ def test_normal_startup_no_warnings_compose(tmp_path: pathlib.Path) -> None:
default_project = "netalertx-normal-default" default_project = "netalertx-normal-default"
default_compose_file = _write_normal_startup_compose(default_dir, default_project, default_env_overrides) default_compose_file = _write_normal_startup_compose(default_dir, default_project, default_env_overrides)
port_check_timeout = 20
settle_wait_seconds = 2
default_result = _run_docker_compose( default_result = _run_docker_compose(
default_compose_file, default_compose_file,
default_project, default_project,
timeout=8, timeout=8,
detached=True, detached=True,
post_up=_make_port_check_hook(default_ports), post_up=_make_port_check_hook(
default_ports,
settle_wait_seconds=settle_wait_seconds,
port_wait_timeout=port_check_timeout,
),
) )
# MANDATORY LOGGING - DO NOT REMOVE (see file header for reasoning) # MANDATORY LOGGING - DO NOT REMOVE (see file header for reasoning)
print("\n[compose output default]", default_result.output) print("\n[compose output default]", default_result.output)
@@ -919,7 +929,11 @@ def test_normal_startup_no_warnings_compose(tmp_path: pathlib.Path) -> None:
custom_project, custom_project,
timeout=8, timeout=8,
detached=True, detached=True,
post_up=_make_port_check_hook(custom_ports), post_up=_make_port_check_hook(
custom_ports,
settle_wait_seconds=settle_wait_seconds,
port_wait_timeout=port_check_timeout,
),
) )
print("\n[compose output custom]", custom_result.output) print("\n[compose output custom]", custom_result.output)
custom_output = _assert_ports_ready(custom_result, custom_project, custom_ports) custom_output = _assert_ports_ready(custom_result, custom_project, custom_ports)
@@ -932,7 +946,12 @@ def test_normal_startup_no_warnings_compose(tmp_path: pathlib.Path) -> None:
"⚠️" not in line or allowed_warning in line "⚠️" not in line or allowed_warning in line
for line in custom_output.splitlines() for line in custom_output.splitlines()
), "Unexpected warning found in custom output" ), "Unexpected warning found in custom output"
lowered_custom = custom_output.lower() custom_output_without_allowed_warning = "\n".join(
line
for line in custom_output.splitlines()
if allowed_warning.lower() not in line.lower()
)
lowered_custom = custom_output_without_allowed_warning.lower()
assert "arning" not in lowered_custom assert "arning" not in lowered_custom
assert "rror" not in lowered_custom assert "rror" not in lowered_custom