Tornado XML-RPC服务器和客户端
tornado-xmlrpc的Python项目详细描述
基于tornado的XML-RPC服务器和客户端实现使用lxml和asynchttpclient。
示例:
fromtornado_xmlrpcimporthandler,clientfromtornado.testingimport*classXMLRPCTestHandler(handler.XMLRPCHandler):defrpc_test(self):returnNonedefrpc_args(self,*args):returnlen(args)defrpc_kwargs(self,**kwargs):returnlen(kwargs)defrpc_args_kwargs(self,*args,**kwargs):returnlen(args)+len(kwargs)defrpc_exception(self):raiseException("YEEEEEE!!!")classTestSimple(tornado.testing.AsyncHTTPTestCase):defsetUp(self):super(TestSimple,self).setUp()self.server=client.ServerProxy("http://localhost:%d"%self.get_http_port())deftearDown(self):super(TestSimple,self).tearDown()self.server=Nonedefget_app(self):returnApplication(handlers=[('/',XMLRPCTestHandler),])@gen_testdeftest_00_test(self):result=yieldself.server.test()self.assertIsNone(result)@gen_testdeftest_10_args(self):result=yieldself.server.args(1,2,3,4,5)self.assertEqual(result,5)@gen_testdeftest_20_kwargs(self):result=yieldself.server.kwargs(foo=1,bar=2)self.assertEqual(result,2)@gen_testdeftest_20_kwargs(self):result=yieldself.server.args_kwargs(1,2,3,4,5,foo=1,bar=2)self.assertEqual(result,7)@gen_testdeftest_30_exception(self):try:yieldself.server.exception()exceptclient.RemoteServerExceptionase:self.assertIn("YEEEEEE!!!",e.message)else:raiseRuntimeError("No exception")