[Checkins] SVN: z3c.jsonrpc/trunk/ handle empty params see changes, version bump

Bernd Dorn bernd.dorn at lovelysystems.com
Tue Apr 7 04:26:33 EDT 2009


Log message for revision 98967:
  handle empty params see changes, version bump

Changed:
  U   z3c.jsonrpc/trunk/CHANGES.txt
  U   z3c.jsonrpc/trunk/setup.py
  U   z3c.jsonrpc/trunk/src/z3c/jsonrpc/README.txt
  U   z3c.jsonrpc/trunk/src/z3c/jsonrpc/publisher.py

-=-
Modified: z3c.jsonrpc/trunk/CHANGES.txt
===================================================================
--- z3c.jsonrpc/trunk/CHANGES.txt	2009-04-07 06:24:00 UTC (rev 98966)
+++ z3c.jsonrpc/trunk/CHANGES.txt	2009-04-07 08:26:32 UTC (rev 98967)
@@ -2,10 +2,10 @@
 CHANGES
 =======
 
-Version 0.5.4 (unreleased)
+Version 0.5.4 (2009-04-07)
 --------------------------
 
-- ...
+- handle empty and none-existing params in jsonrpc requests
 
 
 Version 0.5.3 (2009-03-10)

Modified: z3c.jsonrpc/trunk/setup.py
===================================================================
--- z3c.jsonrpc/trunk/setup.py	2009-04-07 06:24:00 UTC (rev 98966)
+++ z3c.jsonrpc/trunk/setup.py	2009-04-07 08:26:32 UTC (rev 98967)
@@ -24,7 +24,7 @@
 
 setup (
     name='z3c.jsonrpc',
-    version='0.5.4dev',
+    version='0.5.4',
     author = "Roger Ineichen and the Zope Community",
     author_email = "zope-dev at zope.org",
     description = "JSON RPC server and client implementation for Zope3",

Modified: z3c.jsonrpc/trunk/src/z3c/jsonrpc/README.txt
===================================================================
--- z3c.jsonrpc/trunk/src/z3c/jsonrpc/README.txt	2009-04-07 06:24:00 UTC (rev 98966)
+++ z3c.jsonrpc/trunk/src/z3c/jsonrpc/README.txt	2009-04-07 08:26:32 UTC (rev 98967)
@@ -249,7 +249,6 @@
   ...
   NotFound: Object: <zope.site.folder.Folder...: u'++skin++JSONRPCTestSkin'
 
-
 Testing
 -------
 
@@ -271,6 +270,19 @@
   >>> proxy.hello()
   u'Hello World'
 
+As defined in the jsonrpc spec it is also allowed to omit the params
+completly we need to test this with a post directly because the
+testing proxy always sets the params.
+
+  >>> browser.post(siteURL + '/content', "{'method':'hello', 'id':1}",
+  ...              content_type='application/json')
+  >>> browser.contents
+  '{"jsonrpc":"2.0","result":"Hello World","id":1}'
+  >>> browser.post(siteURL + '/content', "{'method':'hello', 'params':null, 'id':1}",
+  ...              content_type='application/json')
+  >>> browser.contents
+  '{"jsonrpc":"2.0","result":"Hello World","id":1}'
+
   >>> proxy2 = JSONRPCTestProxy(siteURL + '/container')
   >>> proxy2.available()
   u'Hello World'

Modified: z3c.jsonrpc/trunk/src/z3c/jsonrpc/publisher.py
===================================================================
--- z3c.jsonrpc/trunk/src/z3c/jsonrpc/publisher.py	2009-04-07 06:24:00 UTC (rev 98966)
+++ z3c.jsonrpc/trunk/src/z3c/jsonrpc/publisher.py	2009-04-07 08:26:32 UTC (rev 98967)
@@ -154,7 +154,7 @@
             # parser
             raise ParseError
         # get the params
-        params = data['params']
+        params = data.get('params', [])
         if self.jsonId is None:
             self.jsonId = data.get('id', self._jsonId)
 
@@ -221,6 +221,8 @@
                                 d = tuple(d)
                     self.form[key] = d
                 args = []
+            elif params is None:
+                args = []
         else:
             raise TypeError, 'Unsupported JSON-RPC version (%s)' % \
                 self.jsonVersion



More information about the Checkins mailing list