class TestMessaging(object): def setup(self): url = 'unix://\0one_test_socket/service' self.node1 = Node() self.node1.register(Namespace()) self.node1.serve(url) self.node2 = Node() self.proxy = self.node2.connect(url) def teardown(self): self.node2.shutdown() self.node1.shutdown() def test_req_rep(self): assert self.proxy.echo('test') == b'test passed' def test_exception(self): try: self.proxy.error() except RuntimeError: pass
#!/usr/bin/python ''' Messaging node: "server" role. Please note, that "server" or "client" role is not a property of the node, it is just a way you use it. ''' import sys from pyroute2.rpc import Node from pyroute2.rpc import public class Namespace(object): ''' Just a namespace to publish procedures ''' @public def echo(self, msg): return '%s passed' % (msg) node = Node() node.register(Namespace()) node.serve('tcp://localhost:9824') print(' hit Ctrl+D to exit ') sys.stdin.read() node.shutdown()