Do not use cubicweb-card in rest_path tests
Card overrides the rest_path method, so it does not make sense to use it in cw
tests.
# copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved.# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr## This file is part of CubicWeb.## CubicWeb is free software: you can redistribute it and/or modify it under the# terms of the GNU Lesser General Public License as published by the Free# Software Foundation, either version 2.1 of the License, or (at your option)# any later version.## CubicWeb is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more# details.## You should have received a copy of the GNU Lesser General Public License along# with CubicWeb. If not, see <http://www.gnu.org/licenses/>."""WSGI request handler for cubicweb"""__docformat__="restructuredtext en"fromitertoolsimportchain,repeat,izipfromcubicwebimportAuthenticationErrorfromcubicweb.webimportDirectResponsefromcubicweb.web.applicationimportCubicWebPublisherfromcubicweb.wsgi.requestimportCubicWebWsgiRequest# See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlSTATUS_CODE_TEXT={100:'CONTINUE',101:'SWITCHING PROTOCOLS',200:'OK',201:'CREATED',202:'ACCEPTED',203:'NON-AUTHORITATIVE INFORMATION',204:'NO CONTENT',205:'RESET CONTENT',206:'PARTIAL CONTENT',300:'MULTIPLE CHOICES',301:'MOVED PERMANENTLY',302:'FOUND',303:'SEE OTHER',304:'NOT MODIFIED',305:'USE PROXY',306:'RESERVED',307:'TEMPORARY REDIRECT',400:'BAD REQUEST',401:'UNAUTHORIZED',402:'PAYMENT REQUIRED',403:'FORBIDDEN',404:'NOT FOUND',405:'METHOD NOT ALLOWED',406:'NOT ACCEPTABLE',407:'PROXY AUTHENTICATION REQUIRED',408:'REQUEST TIMEOUT',409:'CONFLICT',410:'GONE',411:'LENGTH REQUIRED',412:'PRECONDITION FAILED',413:'REQUEST ENTITY TOO LARGE',414:'REQUEST-URI TOO LONG',415:'UNSUPPORTED MEDIA TYPE',416:'REQUESTED RANGE NOT SATISFIABLE',417:'EXPECTATION FAILED',500:'INTERNAL SERVER ERROR',501:'NOT IMPLEMENTED',502:'BAD GATEWAY',503:'SERVICE UNAVAILABLE',504:'GATEWAY TIMEOUT',505:'HTTP VERSION NOT SUPPORTED',}classWSGIResponse(object):"""encapsulates the wsgi response parameters (code, headers and body if there is one) """def__init__(self,code,req,body=None):text=STATUS_CODE_TEXT.get(code,'UNKNOWN STATUS CODE')self.status='%s%s'%(code,text)self.headers=list(chain(*[izip(repeat(k),v)fork,vinreq.headers_out.getAllRawHeaders()]))self.headers=[(str(k),str(v))fork,vinself.headers]ifbody:self.body=[body]else:self.body=[]def__iter__(self):returniter(self.body)classCubicWebWSGIApplication(object):"""This is the wsgi application which will be called by the wsgi server with the WSGI ``environ`` and ``start_response`` parameters. XXX: missing looping tasks and proper repository shutdown when the application is stopped. NOTE: no pyro """def__init__(self,config,vreg=None):self.appli=CubicWebPublisher(config,vreg=vreg)self.config=configself.base_url=self.config['base-url']self.https_url=self.config['https-url']self.url_rewriter=self.appli.vreg['components'].select_or_none('urlrewriter')def_render(self,req):"""this function performs the actual rendering """ifself.base_urlisNone:self.base_url=self.config._base_url=req.base_url()try:path=req.pathresult=self.appli.handle_request(req,path)exceptDirectResponseasex:returnex.responsereturnWSGIResponse(req.status_out,req,result)def__call__(self,environ,start_response):"""WSGI protocol entry point"""req=CubicWebWsgiRequest(environ,self.appli.vreg)response=self._render(req)start_response(response.status,response.headers)returnresponse.body# these are overridden by set_log_methods below# only defining here to prevent pylint from complaininginfo=warning=error=critical=exception=debug=lambdamsg,*a,**kw:NonefromloggingimportgetLoggerfromcubicwebimportset_log_methodsset_log_methods(CubicWebWSGIApplication,getLogger('cubicweb.wsgi'))