def decodeQueryString(QueryString):
    """decode *QueryString* into a dictionary, as ZPublisher would do"""
    r = HTTPRequest(None, {
        'QUERY_STRING': QueryString,
        'SERVER_URL': '',
    }, None, 1)
    r.processInputs()
    return r.form
Example #2
0
def decodeQueryString(QueryString):
  """decode *QueryString* into a dictionary, as ZPublisher would do"""
  r= HTTPRequest(None,
         {'QUERY_STRING' : QueryString,
          'SERVER_URL' : '',
          },
         None,1)
  r.processInputs()
  return r.form
Example #3
0
 def makeRequest(self):
     response = HTTPResponse()
     request = HTTPRequest(StringIO(''), test_environ.copy(), response)
     # Set up request.form, etc.
     request.processInputs()
     # Make sure the URLs are set up correctly by faking traversal
     root = DummyObject()
     root.john = DummyObject()
     root.john.mc = DummyObject()
     root.john.mc.clane = DummyObject()
     request['PARENTS'] = [root]
     request.traverse(request['PATH_INFO'])
     return request
Example #4
0
 def testRemoveStdinReferences(self):
     # Verifies that all references to the input stream go away on
     # request.close().  Otherwise a tempfile may stick around.
     import sys
     from StringIO import StringIO
     s = StringIO(TEST_FILE_DATA)
     env = TEST_ENVIRON.copy()
     start_count = sys.getrefcount(s)
     from ZPublisher.HTTPRequest import HTTPRequest
     req = HTTPRequest(s, env, None)
     req.processInputs()
     self.assertNotEqual(start_count, sys.getrefcount(s))  # Precondition
     req.close()
     self.assertEqual(start_count, sys.getrefcount(s))  # The test
Example #5
0
 def testRemoveStdinReferences(self):
     # Verifies that all references to the input stream go away on
     # request.close().  Otherwise a tempfile may stick around.
     import sys
     from StringIO import StringIO
     s = StringIO(TEST_FILE_DATA)
     env = TEST_ENVIRON.copy()
     start_count = sys.getrefcount(s)
     from ZPublisher.HTTPRequest import HTTPRequest
     req = HTTPRequest(s, env, None)
     req.processInputs()
     self.assertNotEqual(start_count, sys.getrefcount(s))  # Precondition
     req.close()
     self.assertEqual(start_count, sys.getrefcount(s))  # The test
Example #6
0
 def testFileIterator(self):
     # checks fileupload object supports the iterator protocol
     # collector entry 1837
     import sys
     from StringIO import StringIO
     s = StringIO(TEST_FILE_DATA)
     env = TEST_ENVIRON.copy()
     from ZPublisher.HTTPRequest import HTTPRequest
     req = HTTPRequest(s, env, None)
     req.processInputs()
     f = req.form.get('file')
     self.assertEqual(list(f), ['test\n'])
     f.seek(0)
     self.assertEqual(f.next(), 'test\n')
     f.seek(0)
     self.assertEqual(f.xreadlines(), f)
Example #7
0
 def testFileIterator(self):
     # checks fileupload object supports the iterator protocol
     # collector entry 1837
     import sys
     from StringIO import StringIO
     s = StringIO(TEST_FILE_DATA)
     env = TEST_ENVIRON.copy()
     from ZPublisher.HTTPRequest import HTTPRequest
     req = HTTPRequest(s, env, None)
     req.processInputs()
     f=req.form.get('file')
     self.assertEqual(list(f),['test\n'])
     f.seek(0)
     self.assertEqual(f.next(),'test\n')
     f.seek(0)
     self.assertEqual(f.xreadlines(),f)
Example #8
0
def makerequest(environ=None, stdin=''):
  stdout = StringIO()
  stdin  = StringIO(stdin)
  if environ is None:
    environ = {}

  # Header-Name -> HEADER_NAME
  _ = {}
  for k,v in environ.items():
    k = k.replace('-', '_').upper()
    _[k] = v
  environ = _

  response = HTTPResponse(stdout=stdout)
  environ.setdefault('SERVER_NAME',    'foo')
  environ.setdefault('SERVER_PORT',    '80')
  request  = HTTPRequest(stdin, environ, response)
  # process stdin data
  request.processInputs()
  return request
def makerequest(environ=None, stdin=''):
    stdout = StringIO()
    stdin = StringIO(stdin)
    if environ is None:
        environ = {}

    # Header-Name -> HEADER_NAME
    _ = {}
    for k, v in environ.items():
        k = k.replace('-', '_').upper()
        _[k] = v
    environ = _

    response = HTTPResponse(stdout=stdout)
    environ.setdefault('SERVER_NAME', 'foo')
    environ.setdefault('SERVER_PORT', '80')
    request = HTTPRequest(stdin, environ, response)
    # process stdin data
    request.processInputs()
    return request
Example #10
0
    def testDebug(self):
        TEST_ENVIRON = {
            'REQUEST_METHOD': 'GET',
            'SERVER_NAME': 'localhost',
            'SERVER_PORT': '80',
        }
        from StringIO import StringIO
        from ZPublisher.HTTPRequest import HTTPRequest
        s = StringIO('')

        # accessing request.debug from non-Zope3 code will raise an
        # AttributeError
        env = TEST_ENVIRON.copy()
        request = HTTPRequest(s, env, None)
        request.processInputs()
        self.assertRaises(AttributeError, getattr, request, 'debug')

        # or it will actually yield a 'debug' form variable if it
        # exists
        env = TEST_ENVIRON.copy()
        env['QUERY_STRING'] = 'debug=1'
        request = HTTPRequest(s, env, None)
        request.processInputs()
        self.assertEqual(request.debug, '1')

        # if we access request.debug from a Zope 3 package, however,
        # we will see the DebugFlags instance
        def getDebug(request):
            return request.debug

        # make a forged copy of getDebug that looks as if its module
        # was a Zope 3 package
        z3globals = globals().copy()
        z3globals['__name__'] = 'zope.apackage'
        import new
        getDebugFromZope3 = new.function(getDebug.func_code, z3globals)
        from zope.publisher.base import DebugFlags
        self.assertEqual(getDebug(request), '1')
        self.assert_(isinstance(getDebugFromZope3(request), DebugFlags))
Example #11
0
def makeFileUpload(data, filename):
    request_data = upload_request.format(filename, len(data), data)
    req = HTTPRequest(StringIO(request_data), test_environment.copy(), None)
    req.processInputs()
    return req.form.get('file')
Example #12
0
def makeFileUpload(data, filename):
    request_data = upload_request % (filename, len(data), data)
    req = HTTPRequest(StringIO(request_data), test_environment.copy(), None)
    req.processInputs()
    return req.form.get('file')