def test_create_sockets_multiple(monkeypatch: MonkeyPatch) -> None: mock_socket = Mock() monkeypatch.setattr(socket, "socket", mock_socket) config = Config() config.bind = ["127.0.0.1", "unix:/tmp/hypercorn.sock"] sockets = config.create_sockets() assert len(sockets.insecure_sockets) == 2
def test_create_sockets_fd(monkeypatch: MonkeyPatch) -> None: mock_fromfd = Mock() monkeypatch.setattr(socket, "fromfd", mock_fromfd) config = Config() config.bind = ["fd://2"] sockets = config.create_sockets() sock = sockets.insecure_sockets[0] mock_fromfd.assert_called_with(2, socket.AF_UNIX, socket.SOCK_STREAM) sock.setsockopt.assert_called_with(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # type: ignore sock.setblocking.assert_called_with(False) # type: ignore sock.set_inheritable.assert_called_with(True) # type: ignore
def test_create_sockets_unix(monkeypatch: MonkeyPatch) -> None: mock_socket = Mock() monkeypatch.setattr(socket, "socket", mock_socket) config = Config() config.bind = ["unix:/tmp/hypercorn.sock"] sockets = config.create_sockets() sock = sockets.insecure_sockets[0] mock_socket.assert_called_with(socket.AF_UNIX, socket.SOCK_STREAM) sock.setsockopt.assert_called_with(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # type: ignore sock.bind.assert_called_with("/tmp/hypercorn.sock") # type: ignore sock.setblocking.assert_called_with(False) # type: ignore sock.set_inheritable.assert_called_with(True) # type: ignore
def test_create_sockets_fd(monkeypatch: MonkeyPatch) -> None: mock_sock_class = Mock(return_value=NonCallableMock( **{"getsockopt.return_value": socket.SOCK_STREAM} # type: ignore )) monkeypatch.setattr(socket, "socket", mock_sock_class) config = Config() config.bind = ["fd://2"] sockets = config.create_sockets() sock = sockets.insecure_sockets[0] mock_sock_class.assert_called_with(fileno=2) sock.getsockopt.assert_called_with(socket.SOL_SOCKET, socket.SO_TYPE) # type: ignore sock.setsockopt.assert_called_with(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # type: ignore sock.setblocking.assert_called_with(False) # type: ignore sock.set_inheritable.assert_called_with(True) # type: ignore
def test_create_sockets_ip( bind: str, expected_family: socket.AddressFamily, expected_binding: Tuple[str, int], monkeypatch: MonkeyPatch, ) -> None: mock_socket = Mock() monkeypatch.setattr(socket, "socket", mock_socket) config = Config() config.bind = [bind] sockets = config.create_sockets() sock = sockets.insecure_sockets[0] mock_socket.assert_called_with(expected_family, socket.SOCK_STREAM) sock.setsockopt.assert_called_with(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # type: ignore sock.bind.assert_called_with(expected_binding) # type: ignore sock.setblocking.assert_called_with(False) # type: ignore sock.set_inheritable.assert_called_with(True) # type: ignore