def test_recv(self): bidi_rpc = bidi.BidiRpc(None) bidi_rpc.call = iter([mock.sentinel.response]) response = bidi_rpc.recv() assert response == mock.sentinel.response
def test_open_error_already_open(self): rpc, _ = make_rpc() bidi_rpc = bidi.BidiRpc(rpc) bidi_rpc.open() with pytest.raises(ValueError): bidi_rpc.open()
def test_done_callbacks(self): bidi_rpc = bidi.BidiRpc(None) callback = mock.Mock(spec=['__call__']) bidi_rpc.add_done_callback(callback) bidi_rpc._on_call_done(mock.sentinel.future) callback.assert_called_once_with(mock.sentinel.future)
def test_send_dead_rpc(self): error = ValueError() bidi_rpc = bidi.BidiRpc(None) bidi_rpc.call = ClosedCall(error) with pytest.raises(ValueError) as exc_info: bidi_rpc.send(mock.sentinel.request) assert exc_info.value == error
def test_send(self): rpc, call = make_rpc() bidi_rpc = bidi.BidiRpc(rpc) bidi_rpc.open() bidi_rpc.send(mock.sentinel.request) assert bidi_rpc.pending_requests == 1 assert bidi_rpc._request_queue.get() is mock.sentinel.request
def test_open(self): rpc, call = make_rpc() bidi_rpc = bidi.BidiRpc(rpc) bidi_rpc.open() assert bidi_rpc.call == call assert bidi_rpc.is_active call.add_done_callback.assert_called_once_with(bidi_rpc._on_call_done)
def test_close(self): rpc, call = make_rpc() bidi_rpc = bidi.BidiRpc(rpc) bidi_rpc.open() bidi_rpc.close() call.cancel.assert_called_once() assert bidi_rpc.call == call assert bidi_rpc.is_active is False # ensure the request queue was signaled to stop. assert bidi_rpc.pending_requests == 1 assert bidi_rpc._request_queue.get() is None
def test_recv_not_open(self): rpc, call = make_rpc() bidi_rpc = bidi.BidiRpc(rpc) with pytest.raises(ValueError): bidi_rpc.recv()
def test_send_not_open(self): rpc, call = make_rpc() bidi_rpc = bidi.BidiRpc(rpc) with pytest.raises(ValueError): bidi_rpc.send(mock.sentinel.request)
def test_close_no_rpc(self): bidi_rpc = bidi.BidiRpc(None) bidi_rpc.close()
def test_initial_state(self): bidi_rpc = bidi.BidiRpc(None) assert bidi_rpc.is_active is False