Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mosquito/tornado-xmlrpc
Tornado XML-RPC server and client
https://github.com/mosquito/tornado-xmlrpc
async-python rpc-client rpc-server tornado xml xml-rpc xml-rpc-api
Last synced: 23 days ago
JSON representation
Tornado XML-RPC server and client
- Host: GitHub
- URL: https://github.com/mosquito/tornado-xmlrpc
- Owner: mosquito
- License: mit
- Created: 2015-12-04T23:52:33.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2018-04-24T10:11:03.000Z (almost 7 years ago)
- Last Synced: 2025-01-19T06:46:37.741Z (26 days ago)
- Topics: async-python, rpc-client, rpc-server, tornado, xml, xml-rpc, xml-rpc-api
- Language: Python
- Size: 23.4 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
Tornado XMLRPC
==============.. image:: https://travis-ci.org/mosquito/tornado-xmlrpc.svg
:target: https://travis-ci.org/mosquito/tornado-xmlrpc.. image:: https://img.shields.io/pypi/v/tornado-xmlrpc.svg
:target: https://pypi.python.org/pypi/tornado-xmlrpc/
:alt: Latest Version.. image:: https://img.shields.io/pypi/wheel/tornado-xmlrpc.svg
:target: https://pypi.python.org/pypi/tornado-xmlrpc/.. image:: https://img.shields.io/pypi/pyversions/tornado-xmlrpc.svg
:target: https://pypi.python.org/pypi/tornado-xmlrpc/.. image:: https://img.shields.io/pypi/l/tornado-xmlrpc.svg
:target: https://pypi.python.org/pypi/tornado-xmlrpc/XML-RPC server and client implementation based on tornado. Using lxml and AsyncHttpClient.
Example:
.. code-block:: python
from tornado_xmlrpc import handler, client
from tornado.testing import *class XMLRPCTestHandler(handler.XMLRPCHandler):
def rpc_test(self):
return Nonedef rpc_args(self, *args):
return len(args)def rpc_kwargs(self, **kwargs):
return len(kwargs)def rpc_args_kwargs(self, *args, **kwargs):
return len(args) + len(kwargs)def rpc_exception(self):
raise Exception("YEEEEEE!!!")class TestSimple(tornado.testing.AsyncHTTPTestCase):
def setUp(self):
super(TestSimple, self).setUp()
self.server = client.ServerProxy("http://localhost:%d" % self.get_http_port())def tearDown(self):
super(TestSimple, self).tearDown()
self.server = Nonedef get_app(self):
return Application(handlers=[
('/', XMLRPCTestHandler),
])@gen_test
def test_00_test(self):
result = yield self.server.test()
self.assertIsNone(result)@gen_test
def test_10_args(self):
result = yield self.server.args(1, 2, 3, 4, 5)
self.assertEqual(result, 5)@gen_test
def test_20_kwargs(self):
result = yield self.server.kwargs(foo=1, bar=2)
self.assertEqual(result, 2)@gen_test
def test_20_kwargs(self):
result = yield self.server.args_kwargs(1, 2, 3, 4, 5, foo=1, bar=2)
self.assertEqual(result, 7)@gen_test
def test_30_exception(self):
try:
yield self.server.exception()
except client.RemoteServerException as e:
self.assertIn("YEEEEEE!!!", e.message)
else:
raise RuntimeError("No exception")