Add BrokerConnection.disconnected() method; update tests
This commit is contained in:
@@ -139,6 +139,10 @@ class BrokerConnection(object):
|
||||
"""Return True iff socket is in intermediate connecting state."""
|
||||
return self.state is ConnectionStates.CONNECTING
|
||||
|
||||
def disconnected(self):
|
||||
"""Return True iff socket is closed"""
|
||||
return self.state is ConnectionStates.DISCONNECTED
|
||||
|
||||
def close(self, error=None):
|
||||
"""Close socket and fail all in-flight-requests.
|
||||
|
||||
|
||||
@@ -46,7 +46,12 @@ def conn(mocker):
|
||||
[(0, 'foo', 12), (1, 'bar', 34)], # brokers
|
||||
[])) # topics
|
||||
conn.blacked_out.return_value = False
|
||||
def _set_conn_state(state):
|
||||
conn.state = state
|
||||
return state
|
||||
conn._set_conn_state = _set_conn_state
|
||||
conn.connect.side_effect = lambda: conn.state
|
||||
conn.connecting = lambda: conn.connect() is ConnectionStates.CONNECTING
|
||||
conn.connected = lambda: conn.connect() is ConnectionStates.CONNECTED
|
||||
conn.connecting = lambda: conn.state is ConnectionStates.CONNECTING
|
||||
conn.connected = lambda: conn.state is ConnectionStates.CONNECTED
|
||||
conn.disconnected = lambda: conn.state is ConnectionStates.DISCONNECTED
|
||||
return conn
|
||||
|
||||
@@ -85,21 +85,20 @@ def test_maybe_connect(conn):
|
||||
|
||||
assert 0 not in cli._conns
|
||||
conn.state = ConnectionStates.DISCONNECTED
|
||||
conn.connect.side_effect = lambda: ConnectionStates.CONNECTING
|
||||
conn.connect.side_effect = lambda: conn._set_conn_state(ConnectionStates.CONNECTING)
|
||||
assert cli._maybe_connect(0) is False
|
||||
assert cli._conns[0] is conn
|
||||
assert 0 in cli._connecting
|
||||
|
||||
conn.state = ConnectionStates.CONNECTING
|
||||
conn.connect.side_effect = lambda: ConnectionStates.CONNECTED
|
||||
conn.connect.side_effect = lambda: conn._set_conn_state(ConnectionStates.CONNECTED)
|
||||
assert cli._maybe_connect(0) is True
|
||||
assert 0 not in cli._connecting
|
||||
|
||||
# Failure to connect should trigger metadata update
|
||||
assert cli.cluster._need_update is False
|
||||
cli._connecting.add(0)
|
||||
conn.state = ConnectionStates.CONNECTING
|
||||
conn.connect.side_effect = lambda: ConnectionStates.DISCONNECTED
|
||||
cli._connecting.add(0)
|
||||
conn.connect.side_effect = lambda: conn._set_conn_state(ConnectionStates.DISCONNECTED)
|
||||
assert cli._maybe_connect(0) is False
|
||||
assert 0 not in cli._connecting
|
||||
assert cli.cluster._need_update is True
|
||||
@@ -155,7 +154,7 @@ def test_ready(conn):
|
||||
# connecting node connects
|
||||
cli._connecting.add(0)
|
||||
conn.state = ConnectionStates.CONNECTING
|
||||
conn.connect.side_effect = lambda: ConnectionStates.CONNECTED
|
||||
conn.connect.side_effect = lambda: conn._set_conn_state(ConnectionStates.CONNECTED)
|
||||
cli.ready(0)
|
||||
assert 0 not in cli._connecting
|
||||
assert cli._conns[0].connect.called_with()
|
||||
|
||||
Reference in New Issue
Block a user