diff -r 1817f8946c22 -r faf279e33298 cubicweb/pyramid/test/test_rest_api.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cubicweb/pyramid/test/test_rest_api.py Mon Sep 26 14:52:12 2016 +0200 @@ -0,0 +1,59 @@ +from __future__ import absolute_import + +from cubicweb.pyramid.rest_api import EntityResource +from cubicweb.pyramid.core import CubicWebPyramidRequest +from pyramid.view import view_config + +from cubicweb.pyramid.test import PyramidCWTest + + +class RestApiTest(PyramidCWTest): + def includeme(self, config): + config.include('cubicweb.pyramid.rest_api') + config.include('cubicweb.pyramid.test.test_rest_api') + + def test_delete(self): + with self.admin_access.repo_cnx() as cnx: + cnx.create_entity('CWGroup', name=u'tmp') + cnx.commit() + + self.login() + res = self.webapp.delete('/cwgroup/tmp') + self.assertEqual(res.status_int, 204) + + 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 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__) + + +if __name__ == '__main__': + from unittest import main + main()