"""Startkontrollen i run_webui.py (vägrar om porten redan används)."""
import socket
import run_webui
def test_port_in_use_detection():
# en ledig hög port ska rapporteras fri
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as probe:
probe.bind(("127.0.0.1", 0))
free_port = probe.getsockname()[1]
assert run_webui._port_in_use(free_port) is False
# medan vi håller en lyssnande socket ska porten rapporteras upptagen
srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srv.bind(("127.0.0.1", 0))
srv.listen(1)
port = srv.getsockname()[1]
try:
assert run_webui._port_in_use(port) is True
assert isinstance(run_webui._pids_on_port(port), list)
finally:
srv.close()