Пример #1
0
def test_port_bind_failure_gives_up_retries():
    heart = Heartbeat(None)
    with patch.object(heart, "_try_bind_socket") as mock_try_bind:
        mock_try_bind.side_effect = zmq.ZMQError(errno.EADDRINUSE,
                                                 "fails for non-bind")
        with pytest.raises(zmq.ZMQError):
            heart._bind_socket()
        assert mock_try_bind.call_count == 100
Пример #2
0
def test_port_bind_failure_raises():
    heart = Heartbeat(None)
    with patch.object(heart, "_try_bind_socket") as mock_try_bind:
        mock_try_bind.side_effect = zmq.ZMQError(
            -100, "fails for unknown error types")
        with pytest.raises(zmq.ZMQError):
            heart._bind_socket()
        assert mock_try_bind.call_count == 1
Пример #3
0
def test_port_bind_failure_recovery():
    try:
        errno.WSAEADDRINUSE
    except AttributeError:
        # Fake windows address in-use code
        errno.WSAEADDRINUSE = 12345

    try:
        heart = Heartbeat(None)
        with patch.object(heart, '_try_bind_socket') as mock_try_bind:
            mock_try_bind.side_effect = [
                zmq.ZMQError(errno.EADDRINUSE, "fails for non-bind unix"),
                zmq.ZMQError(errno.WSAEADDRINUSE, "fails for non-bind windows")
            ] + [0] * 100
            # Shouldn't raise anything as retries will kick in
            heart._bind_socket()
    finally:
        # Cleanup fake assignment
        if errno.WSAEADDRINUSE == 12345:
            del errno.WSAEADDRINUSE
Пример #4
0
def test_port_bind_success():
    heart = Heartbeat(None)
    with patch.object(heart, "_try_bind_socket") as mock_try_bind:
        heart._bind_socket()
        assert mock_try_bind.call_count == 1