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')
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')
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()
def _recv(sock): return tests.spawn(sock.recv).result()
def _send(sock, data): tests.spawn(sock.send, data).result()
def test_spawn(self): self.assertEqual(tests.spawn(lambda x: x + 1, 1).result(), 2)