示例#1
0
        def do_test(s0, s1):
            f = tests.spawn(s0.send, b'hello world')
            d = s1.recv()
            f.result()
            self.assertEqual(d, b'hello world')

            f = tests.spawn(s1.send, b'spam egg')
            d = s0.recv()
            f.result()
            self.assertEqual(d, b'spam egg')
示例#2
0
        def do_test(s0, s1):
            m0 = nng.Message(b'hello world')
            self.assertEqual(m0.header.memory_view, b'')
            self.assertEqual(m0.body.memory_view, b'hello world')

            f = tests.spawn(s0.sendmsg, m0)
            m1 = s1.recvmsg()
            f.result()
            del m0

            self.assertEqual(m1.header.memory_view, b'')
            self.assertEqual(m1.body.memory_view, b'hello world')

            m1.body.memory_view[:] = bytes(reversed(b'hello world'))
            self.assertEqual(m1.header.memory_view, b'')
            self.assertEqual(m1.body.memory_view, b'dlrow olleh')

            f = tests.spawn(s1.sendmsg, m1)
            m2 = s0.recvmsg()
            f.result()
            # Ownership is transferred on success.
            self.assertIsNone(m1._msg_p)

            self.assertEqual(m2.body.memory_view, b'dlrow olleh')
示例#3
0
    def test_dialer_start(self):
        with contextlib.ExitStack() as stack:
            url = 'inproc://%s' % uuid.uuid4()

            s1 = stack.enter_context(sockets.Socket(nng.Protocols.REP0))
            s1.listen(url)

            s0 = stack.enter_context(sockets.Socket(nng.Protocols.REQ0))
            d = s0.dial(url, create_only=True)
            d.start()

            f = tests.spawn(s0.send, b'hello world')
            d = s1.recv()
            f.result()
            self.assertEqual(d, b'hello world')

            d = s0.dial('inproc://%s' % uuid.uuid4())
            with self.assertRaises(nng.Errors.ESTATE):
                d.start()
示例#4
0
def _recv(sock):
    return tests.spawn(sock.recv).result()
示例#5
0
def _send(sock, data):
    tests.spawn(sock.send, data).result()
示例#6
0
 def test_spawn(self):
     self.assertEqual(tests.spawn(lambda x: x + 1, 1).result(), 2)