def test_socket_manager_not_ready(get_by_name, engage):
    ("SocketManager().ready() should return None when the socket is not available")

    # Given a zmq mock
    zmq = Mock()

    # And a context
    context = Mock()

    # And a socket manager with a fake socket and an *EMPTY* cache
    manager = SocketManager(zmq, context)
    manager.sockets = {
        "foobar": "SOME_TYPE"
    }
    manager.cache = {}

    # And that get_by_name will return "socket_sentinel"
    get_by_name.return_value = 'socket_sentinel'

    # When I call ready
    socket = manager.ready('foobar', 'some-polling-mechanism', timeout=1000)

    # Then the result should be None
    socket.should.be.none

    # And engage should have been called
    engage.assert_called_once_with(1000)
def test_socket_manager_not_ready(get_by_name, engage):
    ("SocketManager().ready() should return None when the socket is not available"
     )

    # Given a zmq mock
    zmq = Mock()

    # And a context
    context = Mock()

    # And a socket manager with a fake socket and an *EMPTY* cache
    manager = SocketManager(zmq, context)
    manager.sockets = {"foobar": "SOME_TYPE"}
    manager.cache = {}

    # And that get_by_name will return "socket_sentinel"
    get_by_name.return_value = 'socket_sentinel'

    # When I call ready
    socket = manager.ready('foobar', 'some-polling-mechanism', timeout=1000)

    # Then the result should be None
    socket.should.be.none

    # And engage should have been called
    engage.assert_called_once_with(1000)
def test_socket_manager_ready(get_by_name, engage):
    ("SocketManager().ready() should return the socket "
     "if it's ready and engaged with the given polling mechanism")

    # Given a zmq mock
    zmq = Mock()

    # And a context
    context = Mock()

    # And a socket manager with a fake socket and a fake cache
    manager = SocketManager(zmq, context)
    manager.sockets = {
        "foobar": "SOME_TYPE"
    }
    manager.cache = {
        'socket_sentinel': "some-polling-mechanism"
    }
    # And that get_by_name will return "socket_sentinel"
    get_by_name.return_value = 'socket_sentinel'

    # When I call ready
    socket = manager.ready('foobar', 'some-polling-mechanism', timeout=1000)

    # Then the result should be the "socket_sentinel"
    socket.should.equal("socket_sentinel")

    # And engage should have been called
    engage.assert_called_once_with(1000)
def test_socket_manager_ready(get_by_name, engage):
    ("SocketManager().ready() should return the socket "
     "if it's ready and engaged with the given polling mechanism")

    # Given a zmq mock
    zmq = Mock()

    # And a context
    context = Mock()

    # And a socket manager with a fake socket and a fake cache
    manager = SocketManager(zmq, context)
    manager.sockets = {"foobar": "SOME_TYPE"}
    manager.cache = {'socket_sentinel': "some-polling-mechanism"}
    # And that get_by_name will return "socket_sentinel"
    get_by_name.return_value = 'socket_sentinel'

    # When I call ready
    socket = manager.ready('foobar', 'some-polling-mechanism', timeout=1000)

    # Then the result should be the "socket_sentinel"
    socket.should.equal("socket_sentinel")

    # And engage should have been called
    engage.assert_called_once_with(1000)