[testlib] test_view now parse json data, closes #2557467 stable
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 17 Jan 2013 17:12:06 +0100
branchstable
changeset 8652 7812093e21f7
parent 8651 353bbd17a8b6
child 8655 ab57000bff7b
child 8656 9bb93efa1952
[testlib] test_view now parse json data, closes #2557467
devtools/testlib.py
--- a/devtools/testlib.py	Thu Jan 17 14:39:51 2013 +0100
+++ b/devtools/testlib.py	Thu Jan 17 17:12:06 2013 +0100
@@ -1,4 +1,4 @@
-# copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+# copyright 2003-2013 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
 #
 # This file is part of CubicWeb.
@@ -45,6 +45,7 @@
 
 from cubicweb import ValidationError, NoSelectableObject, AuthenticationError
 from cubicweb import cwconfig, dbapi, devtools, web, server
+from cubicweb.utils import json
 from cubicweb.sobjects import notification
 from cubicweb.web import Redirect, application
 from cubicweb.server.session import Session, security_enabled
@@ -85,6 +86,11 @@
         protected_entities = yams.schema.BASE_TYPES.union(SYSTEM_ENTITIES)
     return set(schema.entities()) - protected_entities
 
+class JsonValidator(object):
+    def parse_string(self, data):
+        json.loads(data)
+        return data
+
 # email handling, to test emails sent by an application ########################
 
 MAILBOX = []
@@ -793,11 +799,11 @@
         #'application/xhtml+xml': DTDValidator,
         'application/xml': htmlparser.SaxOnlyValidator,
         'text/xml': htmlparser.SaxOnlyValidator,
+        'application/json': JsonValidator,
         'text/plain': None,
         'text/comma-separated-values': None,
         'text/x-vcard': None,
         'text/calendar': None,
-        'application/json': None,
         'image/png': None,
         }
     # maps vid : validator name (override content_type_validators)