def future_timeout(): if future.done(): # future already resolved, do nothing return # raise EAGAIN future.set_exception(_zmq.Again())
def test_incomplete_pending_write(self): self.tr._buffer = [(4, [b'data'])] self.tr._buffer_size = 4 self.sock.send_multipart.side_effect = zmq.Again(errno.EAGAIN) self.tr._do_write() self.assertEqual(4, self.tr._buffer_size) self.assertEqual([(4, [b'data'])], self.tr._buffer)
def test_process_does_not_block(self): mock_socket = Mock() mock_socket.recv_unicode.side_effect = zmq.Again() server = ControlServer(None, connection_string="127.0.0.1:10000") server._socket = mock_socket assertRaisesNothing(self, server.process) mock_socket.recv_unicode.assert_has_calls([call(flags=zmq.NOBLOCK)])
def future_timeout(): if future.done(): # future already resolved, do nothing return # pop the entry from _recv_futures for f_idx, (f, kind, kwargs, _) in enumerate(self._recv_futures): if f == future: self._recv_futures.pop(f_idx) break # pop the entry from _send_futures for f_idx, (f, kind, kwargs, _) in enumerate(self._send_futures): if f == future: self._send_futures.pop(f_idx) break # raise EAGAIN future.set_exception(_zmq.Again())
def test_incomplete_read(self): self.sock.recv_multipart.side_effect = zmq.Again(errno.EAGAIN) self.tr._do_read() self.assertFalse(self.tr._closing) self.assertFalse(self.proto.msg_received.called)