예제 #1
0
파일: _future.py 프로젝트: itziakos/pyzmq
        def future_timeout():
            if future.done():
                # future already resolved, do nothing
                return

            # raise EAGAIN
            future.set_exception(_zmq.Again())
예제 #2
0
 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)])
예제 #4
0
        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())
예제 #5
0
 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)