From 5f1d897d05648dedd38dfcdc4861baace38e8b26 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 15 Nov 2024 13:46:33 +1030 Subject: [PATCH] pytest: fix flake in test_wss_proxy ``` > wss = BindWebSecureSocket('localhost', wss_port) tests/test_connection.py:4584: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_connection.py:4570: in __init__ self.ws.connect("wss://" + hostname + ":" + str(port)) ../../../.cache/pypoetry/virtualenvs/cln-meta-project-AqJ9wMix-py3.8/lib/python3.8/site-packages/websocket/_core.py:256: in connect self.sock, addrs = connect( ../../../.cache/pypoetry/virtualenvs/cln-meta-project-AqJ9wMix-py3.8/lib/python3.8/site-packages/websocket/_http.py:145: in connect sock = _open_socket(addrinfo_list, options.sockopt, options.timeout) ../../../.cache/pypoetry/virtualenvs/cln-meta-project-AqJ9wMix-py3.8/lib/python3.8/site-packages/websocket/_http.py:232: in _open_socket raise err _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ addrinfo_list = [(, , 6, '', ('::1', 45521, 0, 0)), (, , 6, '', ('127.0.0.1', 45521))] sockopt = [], timeout = None def _open_socket(addrinfo_list, sockopt, timeout): err = None for addrinfo in addrinfo_list: family, socktype, proto = addrinfo[:3] sock = socket.socket(family, socktype, proto) sock.settimeout(timeout) for opts in DEFAULT_SOCKET_OPTION: sock.setsockopt(*opts) for opts in sockopt: sock.setsockopt(*opts) address = addrinfo[4] err = None while not err: try: > sock.connect(address) E ConnectionRefusedError: [Errno 111] Connection refused ``` Signed-off-by: Rusty Russell --- tests/test_connection.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/test_connection.py b/tests/test_connection.py index 288c01ffcec4..cb64e4ef4685 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -4581,6 +4581,11 @@ def recv(self, maxlen): self.recvbuf = self.recvbuf[maxlen:] return ret + # There can be a delay between the printing of "Websocket Secure Server Started" + # and actually binding the port. There's no obvious way to delay that message + # it's done. So we sleep here. + time.sleep(10) + wss = BindWebSecureSocket('localhost', wss_port) lconn = wire.LightningConnection(wss,