/tests/web/test_jsonrpc.py

https://bitbucket.org/prologic/circuits/ · Python · 39 lines · 24 code · 14 blank · 1 comment · 0 complexity · 0c338b57f78a956726e555f87af641c6 MD5 · raw file

  1. #!/usr/bin/env python
  2. from circuits import Component
  3. from circuits.web import Controller, JSONRPC
  4. from .jsonrpclib import ServerProxy
  5. from .helpers import urlopen
  6. class App(Component):
  7. def eval(self, s):
  8. return eval(s)
  9. class Root(Controller):
  10. def index(self):
  11. return "Hello World!"
  12. def test(webapp):
  13. rpc = JSONRPC("/rpc")
  14. test = App()
  15. rpc.register(webapp)
  16. test.register(webapp)
  17. f = urlopen(webapp.server.http.base)
  18. s = f.read()
  19. assert s == b"Hello World!"
  20. url = "%s/rpc" % webapp.server.http.base
  21. jsonrpc = ServerProxy(url, allow_none=True, encoding='utf-8')
  22. data = jsonrpc.eval("1 + 2")
  23. assert data["result"] == 3
  24. rpc.unregister()
  25. test.unregister()