def assertRaisesErrno(self, errno, func, *args, **kwargs): if errno == zmq.EAGAIN: raise SkipTest("Skipping because we're green.") try: func(*args, **kwargs) except zmq.ZMQError: e = sys.exc_info()[1] self.assertEqual( e.errno, errno, "wrong error raised, expected '%s' \ got '%s'" % (zmq.ZMQError(errno), zmq.ZMQError(e.errno))) else: self.fail("Function did not raise any error")
def device(device_type, isocket, osocket): if device_type not in (zmq.FORWARDER, zmq.QUEUE, zmq.STREAMER): # Invalid device type raise zmq.ZMQError(zmq.EINVAL) if not isinstance(isocket, _Socket): # Non gevent cooperative socket raise NonCooperativeSocket( "isocket is not a green socket. Have you monkey_patch()?") elif not isinstance(osocket, _Socket): # Non gevent cooperative socket raise NonCooperativeSocket( "osocket is not a green socket. Have you monkey_patch()?") def process_isocket(): while True: try: osocket.send(isocket.recv()) except Exception: # XXX: Should we raise the exceptions? or keep mimicing pyzmq? return -1 return 0 def process_osocket(): while True: try: isocket.send(osocket.recv()) except Exception: # XXX: Should we raise the exceptions? or keep mimicing pyzmq? return -1 return 0 iprocess = gevent.spawn(process_isocket) oprocess = gevent.spawn(process_osocket) return gevent.joinall([iprocess, oprocess])
def socket(self, socket_type): if self.closed: raise zmq.ZMQError(zmq.ENOTSUP) return _Socket(self, socket_type)