You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, thank you for developing websockify and novnc.
It is very useful.
I now run the unit tests on macos but got the following error.
error log
============================= test session starts ==============================
platform darwin -- Python 3.10.10, pytest-7.2.0, pluggy-1.0.0
rootdir: /private/tmp/nix-build-python3.10-websockify-0.11.0.drv-0/source
collected 64 items
tests/test_auth_plugins.py .... [ 6%]
tests/test_token_plugins.py ............. [ 26%]
tests/test_websocket.py ................. [ 53%]
tests/test_websocketproxy.py ..... [ 60%]
tests/test_websocketserver.py ..... [ 68%]
tests/test_websockifyserver.py ................F... [100%]
=================================== FAILURES ===================================
__________ WebSockifyServerTestCase.test_socket_set_keepalive_options __________
self = <test_websockifyserver.WebSockifyServerTestCase testMethod=test_socket_set_keepalive_options>
def test_socket_set_keepalive_options(self):
keepcnt = 12
keepidle = 34
keepintvl = 56
server = self._get_server(daemon=False, ssl_only=0, idle_timeout=1)
> sock = server.socket('localhost',
tcp_keepcnt=keepcnt,
tcp_keepidle=keepidle,
tcp_keepintvl=keepintvl)
tests/test_websockifyserver.py:375:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
host = 'localhost', port = None, connect = False, prefer_ipv6 = False
unix_socket = None, use_ssl = False, tcp_keepalive = True, tcp_keepcnt = 12
tcp_keepidle = 34, tcp_keepintvl = 56
@staticmethod
def socket(host, port=None, connect=False, prefer_ipv6=False,
unix_socket=None, use_ssl=False, tcp_keepalive=True,
tcp_keepcnt=None, tcp_keepidle=None, tcp_keepintvl=None):
""" Resolve a host (and optional port) to an IPv4 or IPv6
address. Create a socket. Bind to it if listen is set,
otherwise connect to it. Return the socket.
"""
flags = 0
if host == '':
host = None
if connect and not (port or unix_socket):
raise Exception("Connect mode requires a port")
if use_ssl and not ssl:
raise Exception("SSL socket requested but Python SSL module not loaded.");
if not connect and use_ssl:
raise Exception("SSL only supported in connect mode (for now)")
if not connect:
flags = flags | socket.AI_PASSIVE
if not unix_socket:
addrs = socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM,
socket.IPPROTO_TCP, flags)
if not addrs:
raise Exception("Could not resolve host '%s'" % host)
addrs.sort(key=lambda x: x[0])
if prefer_ipv6:
addrs.reverse()
sock = socket.socket(addrs[0][0], addrs[0][1])
if tcp_keepalive:
sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
if tcp_keepcnt:
sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT,
tcp_keepcnt)
if tcp_keepidle:
> sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE,
tcp_keepidle)
E AttributeError: module 'socket' has no attribute 'TCP_KEEPIDLE'. Did you mean: 'TCP_KEEPALIVE'?
websockify/websockifyserver.py:458: AttributeError
=============================== warnings summary ===============================
websockify/token_plugins.py:39
/private/tmp/nix-build-python3.10-websockify-0.11.0.drv-0/source/websockify/token_plugins.py:39: DeprecationWarning: invalid escape sequence '\s'
tok, target = re.split(':\s', line)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_websockifyserver.py::WebSockifyServerTestCase::test_socket_set_keepalive_options - AttributeError: module 'socket' has no attribute 'TCP_KEEPIDLE'. Did you me...
=================== 1 failed, 63 passed, 1 warning in 2.24s ====================
socket.TCP_KEEPIDLE is not defined on macos, and I suppose it would be better to use socket.TCP_KEEPALIVE on Python 3.10 and above on macos. (https://docs.python.org/3/library/socket.html#constants)
For Python 3.9 and below, it would be better to check the attribute and skip the test, like TCP_KEEPCNT.
I know little about sockets, so that I may be wrong, but I'd be happy to check.
The text was updated successfully, but these errors were encountered:
Hi, thank you for developing websockify and novnc.
It is very useful.
I now run the unit tests on macos but got the following error.
error log
socket.TCP_KEEPIDLE
is not defined on macos, and I suppose it would be better to usesocket.TCP_KEEPALIVE
on Python 3.10 and above on macos. (https://docs.python.org/3/library/socket.html#constants)For Python 3.9 and below, it would be better to check the attribute and skip the test, like
TCP_KEEPCNT
.I know little about sockets, so that I may be wrong, but I'd be happy to check.
The text was updated successfully, but these errors were encountered: