foxygit / RPA-Remisser Log in
commits tags

/tests/test_run_webui.py · 764 B

raw
"""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()