Exemple #1
0
        async def go():
            s1 = await aiozmq.create_zmq_stream(
                zmq.DEALER, bind="tcp://127.0.0.1:{}".format(port))

            self.assertFalse(s1._paused)
            s1._protocol.pause_writing()

            async def f():
                await s1.drain()

            fut = ensure_future(f())
            await asyncio.sleep(0.01)

            s1.close()
            await fut
Exemple #2
0
        async def go():
            s1 = await aiozmq.create_zmq_stream(zmq.DEALER,
                                                bind="tcp://127.0.0.1:*")

            async def f():
                await s1.read()

            t1 = ensure_future(f())
            # to run f() up to await
            await asyncio.sleep(0.001)

            with self.assertRaises(RuntimeError):
                await s1.read()

            t1.cancel()
Exemple #3
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(zmq.DEALER,
                                                     bind='tcp://127.0.0.1:*',
                                                     loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            with self.assertRaises(RuntimeError):
                yield from s1.read()

            t1.cancel()
Exemple #4
0
        async def go():
            s1 = await aiozmq.create_zmq_stream(
                zmq.DEALER, bind="tcp://127.0.0.1:{}".format(port))

            async def f():
                await s1.read()

            t1 = ensure_future(f())
            # to run f() up to await
            await asyncio.sleep(0.001)

            s1.close()
            await asyncio.sleep(0.001)

            with self.assertRaises(aiozmq.ZmqStreamClosed):
                t1.result()
Exemple #5
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:*',
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            with self.assertRaises(RuntimeError):
                yield from s1.read()

            t1.cancel()
Exemple #6
0
        def go():
            addr = 'tcp://127.0.0.1:{}'.format(port)
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.ROUTER,
                bind=addr,
                loop=self.loop)

            @asyncio.coroutine
            def f(s, events):
                try:
                    while True:
                        event = yield from s.read_event()
                        events.append(event)
                except aiozmq.ZmqStreamClosed:
                    pass

            s2 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                loop=self.loop)

            events = []
            t = ensure_future(f(s2, events), loop=self.loop)

            yield from s2.transport.enable_monitor()
            yield from s2.transport.connect(addr)
            yield from s2.transport.disconnect(addr)
            yield from s2.transport.connect(addr)

            s2.write([b'request'])
            req = yield from s1.read()
            self.assertEqual([mock.ANY, b'request'], req)
            s1.write([req[0], b'answer'])
            answer = yield from s2.read()
            self.assertEqual([b'answer'], answer)

            s2.close()
            s1.close()

            yield from t

            # Confirm that the events received by the monitor were valid.
            self.assertGreater(len(events), 0)
            while len(events):
                event = events.pop()
                self.assertIsInstance(event, SocketEvent)
                self.assertIn(event.event, ZMQ_EVENTS)
Exemple #7
0
        async def go():
            s1 = await aiozmq.create_zmq_stream(
                zmq.DEALER, bind="tcp://127.0.0.1:{}".format(port))

            async def f():
                await s1.read()

            t1 = ensure_future(f())
            # to run f() up to await
            await asyncio.sleep(0.001)

            t1.cancel()
            s1.feed_closing()

            await asyncio.sleep(0.001)
            with self.assertRaises(asyncio.CancelledError):
                t1.result()
Exemple #8
0
        def go():
            addr = 'tcp://127.0.0.1:{}'.format(port)
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.ROUTER,
                bind=addr,
                loop=self.loop)

            @asyncio.coroutine
            def f(s, events):
                try:
                    while True:
                        event = yield from s.read_event()
                        events.append(event)
                except aiozmq.ZmqStreamClosed:
                    pass

            s2 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                loop=self.loop)

            events = []
            t = ensure_future(f(s2, events), loop=self.loop)

            yield from s2.transport.enable_monitor()
            yield from s2.transport.connect(addr)
            yield from s2.transport.disconnect(addr)
            yield from s2.transport.connect(addr)

            s2.write([b'request'])
            req = yield from s1.read()
            self.assertEqual([mock.ANY, b'request'], req)
            s1.write([req[0], b'answer'])
            answer = yield from s2.read()
            self.assertEqual([b'answer'], answer)

            s2.close()
            s1.close()

            yield from t

            # Confirm that the events received by the monitor were valid.
            self.assertGreater(len(events), 0)
            while len(events):
                event = events.pop()
                self.assertIsInstance(event, SocketEvent)
                self.assertIn(event.event, ZMQ_EVENTS)
Exemple #9
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            self.assertFalse(s1._paused)
            s1._protocol.pause_writing()

            @asyncio.coroutine
            def f():
                yield from s1.drain()

            fut = ensure_future(f(), loop=self.loop)
            yield from asyncio.sleep(0.01, loop=self.loop)

            s1.close()
            yield from fut
Exemple #10
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            s1.close()
            yield from asyncio.sleep(0.001, loop=self.loop)

            with self.assertRaises(aiozmq.ZmqStreamClosed):
                t1.result()
Exemple #11
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            s1.close()
            yield from asyncio.sleep(0.001, loop=self.loop)

            with self.assertRaises(aiozmq.ZmqStreamClosed):
                t1.result()
Exemple #12
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            self.assertFalse(s1._paused)
            s1._protocol.pause_writing()

            @asyncio.coroutine
            def f():
                yield from s1.drain()

            fut = ensure_future(f(), loop=self.loop)
            yield from asyncio.sleep(0.01, loop=self.loop)

            s1.close()
            yield from fut
Exemple #13
0
        async def go():
            s1 = await aiozmq.create_zmq_stream(
                zmq.DEALER, bind="tcp://127.0.0.1:{}".format(port))

            self.assertFalse(s1._paused)
            s1._protocol.pause_writing()

            async def f():
                await s1.drain()

            fut = ensure_future(f())
            await asyncio.sleep(0.01)

            exc = RuntimeError("exception")
            s1._protocol.connection_lost(exc)
            with self.assertRaises(RuntimeError) as cm:
                await fut
            self.assertIs(cm.exception, exc)
Exemple #14
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            t1.cancel()
            s1.feed_closing()

            yield from asyncio.sleep(0.001, loop=self.loop)
            with self.assertRaises(asyncio.CancelledError):
                t1.result()
Exemple #15
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            t1.cancel()
            s1.feed_closing()

            yield from asyncio.sleep(0.001, loop=self.loop)
            with self.assertRaises(asyncio.CancelledError):
                t1.result()
Exemple #16
0
        async def go():
            s1 = await aiozmq.create_zmq_stream(
                zmq.DEALER, bind="tcp://127.0.0.1:{}".format(port))

            async def f():
                await s1.read()

            t1 = ensure_future(f())
            # to run f() up to await
            await asyncio.sleep(0.001)

            t1.cancel()
            s1.feed_msg([b"data"])

            await asyncio.sleep(0.001)
            with self.assertRaises(asyncio.CancelledError):
                t1.result()

            self.assertEqual(4, s1._queue_len)
            self.assertEqual((4, [b"data"]), s1._queue.popleft())
Exemple #17
0
        async def go():
            s1 = await aiozmq.create_zmq_stream(zmq.DEALER,
                                                bind="tcp://127.0.0.1:*")

            async def f():
                await s1.read()

            t1 = ensure_future(f())
            # to run f() up to await
            await asyncio.sleep(0.001)

            self.assertIsNotNone(s1._waiter)
            t1.cancel()

            exc = RuntimeError("some exc")
            s1.set_exception(exc)
            self.assertIs(exc, s1.exception())

            with self.assertRaisesRegex(RuntimeError, "some exc"):
                await s1.read()
Exemple #18
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            self.assertFalse(s1._paused)
            s1._protocol.pause_writing()

            @asyncio.coroutine
            def f():
                yield from s1.drain()

            fut = ensure_future(f(), loop=self.loop)
            yield from asyncio.sleep(0.01, loop=self.loop)

            exc = RuntimeError("exception")
            s1._protocol.connection_lost(exc)
            with self.assertRaises(RuntimeError) as cm:
                yield from fut
            self.assertIs(cm.exception, exc)
Exemple #19
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            self.assertFalse(s1._paused)
            s1._protocol.pause_writing()

            @asyncio.coroutine
            def f():
                yield from s1.drain()

            fut = ensure_future(f(), loop=self.loop)
            yield from asyncio.sleep(0.01, loop=self.loop)

            exc = RuntimeError("exception")
            s1._protocol.connection_lost(exc)
            with self.assertRaises(RuntimeError) as cm:
                yield from fut
            self.assertIs(cm.exception, exc)
Exemple #20
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(zmq.DEALER,
                                                     bind='tcp://127.0.0.1:*',
                                                     loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            self.assertIsNotNone(s1._waiter)
            t1.cancel()

            exc = RuntimeError('some exc')
            s1.set_exception(exc)
            self.assertIs(exc, s1.exception())

            with self.assertRaisesRegex(RuntimeError, 'some exc'):
                yield from s1.read()
Exemple #21
0
        async def go():
            addr = "tcp://127.0.0.1:{}".format(port)
            s1 = await aiozmq.create_zmq_stream(zmq.ROUTER, bind=addr)

            async def f(s, events):
                try:
                    while True:
                        event = await s.read_event()
                        events.append(event)
                except aiozmq.ZmqStreamClosed:
                    pass

            s2 = await aiozmq.create_zmq_stream(zmq.DEALER)

            events = []
            t = ensure_future(f(s2, events))

            await s2.transport.enable_monitor()
            await s2.transport.connect(addr)
            await s2.transport.disconnect(addr)
            await s2.transport.connect(addr)

            s2.write([b"request"])
            req = await s1.read()
            self.assertEqual([mock.ANY, b"request"], req)
            s1.write([req[0], b"answer"])
            answer = await s2.read()
            self.assertEqual([b"answer"], answer)

            s2.close()
            s1.close()

            await t

            # Confirm that the events received by the monitor were valid.
            self.assertGreater(len(events), 0)
            while len(events):
                event = events.pop()
                self.assertIsInstance(event, SocketEvent)
                self.assertIn(event.event, ZMQ_EVENTS)
Exemple #22
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            t1.cancel()
            s1.feed_msg([b'data'])

            yield from asyncio.sleep(0.001, loop=self.loop)
            with self.assertRaises(asyncio.CancelledError):
                t1.result()

            self.assertEqual(4, s1._queue_len)
            self.assertEqual((4, [b'data']), s1._queue.popleft())
Exemple #23
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:*',
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            self.assertIsNotNone(s1._waiter)
            t1.cancel()

            exc = RuntimeError('some exc')
            s1.set_exception(exc)
            self.assertIs(exc, s1.exception())

            with self.assertRaisesRegex(RuntimeError, 'some exc'):
                yield from s1.read()
Exemple #24
0
        def go():
            s1 = yield from aiozmq.create_zmq_stream(
                zmq.DEALER,
                bind='tcp://127.0.0.1:{}'.format(port),
                loop=self.loop)

            def f():
                yield from s1.read()

            t1 = ensure_future(f(), loop=self.loop)
            # to run f() up to yield from
            yield from asyncio.sleep(0.001, loop=self.loop)

            t1.cancel()
            s1.feed_msg([b'data'])

            yield from asyncio.sleep(0.001, loop=self.loop)
            with self.assertRaises(asyncio.CancelledError):
                t1.result()

            self.assertEqual(4, s1._queue_len)
            self.assertEqual((4, [b'data']), s1._queue.popleft())