pyramid_cubicweb/tests/test_rest_api.py
changeset 11598 2dc0b0db2329
parent 11597 286611d1d7a4
child 11603 c7bfeb7b0d67
--- a/pyramid_cubicweb/tests/test_rest_api.py	Thu Aug 27 11:25:42 2015 +0200
+++ b/pyramid_cubicweb/tests/test_rest_api.py	Mon Jun 15 09:31:37 2015 +0200
@@ -2,10 +2,15 @@
 
 from . import PyramidCWTest
 
+from pyramid_cubicweb.rest_api import EntityResource
+from pyramid_cubicweb.core import CubicWebPyramidRequest
+from pyramid.view import view_config
+
 
 class RestApiTest(PyramidCWTest):
     def includeme(self, config):
         config.include('pyramid_cubicweb.rest_api')
+        config.include('pyramid_cubicweb.tests.test_rest_api')
 
     def test_delete(self):
         with self.admin_access.repo_cnx() as cnx:
@@ -18,3 +23,32 @@
 
         with self.admin_access.repo_cnx() as cnx:
             self.assertEqual(cnx.find('CWGroup', name=u'tmp').rowcount, 0)
+
+    def test_rql_execute(self):
+        with self.admin_access.repo_cnx() as cnx:
+            cnx.create_entity('CWGroup', name=u'tmp')
+            cnx.commit()
+        self.login()
+        params = {'test_rql_execute': 'test'}
+        self.webapp.get('/cwgroup/tmp', params=params)
+
+
+@view_config(
+    route_name='cwentities',
+    context=EntityResource,
+    request_method='GET',
+    request_param=('test_rql_execute',)
+)
+def test_rql_execute_view(context, request):
+    """Return 500 response if rset.req is not a CubicWeb request.
+    """
+    if isinstance(context.rset.req, CubicWebPyramidRequest):
+        request.response.status_int = 204
+    else:
+        request.response.status_int = 500
+        request.response.text = 'rset.req is not a CubicWeb request'
+    return request.response
+
+
+def includeme(config):
+    config.scan(__name__)