Skip to content

Instantly share code, notes, and snippets.

@jean
Created August 15, 2014 09:45
Show Gist options
  • Save jean/ade5682b17d9f7c0976e to your computer and use it in GitHub Desktop.
Save jean/ade5682b17d9f7c0976e to your computer and use it in GitHub Desktop.
SetSiteAndRequest
from zope.component.hooks import setSite
setSite(plone)
from sys import stdin, stdout
from ZPublisher.HTTPRequest import HTTPRequest
from ZPublisher.HTTPResponse import HTTPResponse
from ZPublisher.BaseRequest import RequestContainer
def hacked_makerequest(stdout=None, environ={}):
resp = HTTPResponse(stdout=stdout)
environ.setdefault('SERVER_NAME', 'foo')
environ.setdefault('SERVER_PORT', '80')
environ.setdefault('REQUEST_METHOD', 'GET')
req = HTTPRequest(stdin, environ, resp)
req._steps = ['noobject'] # Fake a published object.
req['ACTUAL_URL'] = req.get('URL') # Zope 2.7.4
req['status_criteria'] = 'Ongoing'
req['cookies'] = {}
from zope.publisher.browser import setDefaultSkin
setDefaultSkin(req)
requestcontainer = RequestContainer(REQUEST = req)
return requestcontainer
plone.REQUEST = hacked_makerequest()
# Before you commit, remember:
del plone.REQUEST
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment