[Zope-Checkins] CVS: Zope3/lib/python/Zope/Publisher/HTTP/tests - testHTTP.py:1.1.2.7
Jim Fulton
jim@zope.com
Tue, 26 Mar 2002 16:26:30 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/Publisher/HTTP/tests
In directory cvs.zope.org:/tmp/cvs-serv7731/Zope/Publisher/HTTP/tests
Modified Files:
Tag: Zope-3x-branch
testHTTP.py
Log Message:
Merged the publication refactoring branch into the main branch.
Also renamed:
browser_reaverse -> publishTraverse
browser_default -> browserDefault
=== Zope3/lib/python/Zope/Publisher/HTTP/tests/testHTTP.py 1.1.2.6 => 1.1.2.7 ===
from Zope.Publisher.HTTP.HTTPRequest import HTTPRequest
from Zope.Publisher.HTTP.HTTPResponse import HTTPResponse
-from Zope.Publisher.HTTP.BrowserPayload import BrowserRequestPayload, \
- BrowserResponsePayload
from Zope.Publisher.Publish import publish
from Zope.Publisher.DefaultPublication import DefaultPublication
-from Zope.Publisher.Browser.IBrowserPublisher import IBrowserPublisher
-from Interface.Verify import verifyClass
+from Interface.Verify import verifyObject
from Interface.Implements import instancesOfObjectImplements
from StringIO import StringIO
class HTTPTests(unittest.TestCase):
+
_testEnv = {
'PATH_INFO': '/folder/item',
- 'QUERY_STRING': 'a=5&b:int=6',
+ 'a': '5',
+ 'b': 6,
'SERVER_URL': 'http://foobar.com',
'HTTP_HOST': 'foobar.com',
'CONTENT_LENGTH': '0',
@@ -52,67 +51,60 @@
self.app.folder = Folder()
self.app.folder.item = Item()
- def _createRequest(self, extra_env={}, body=""):
+ def _createRequest(self, extra_env={}, body="", outstream=None):
env = self._testEnv.copy()
env.update(extra_env)
if len(body):
env['CONTENT_LENGTH'] = str(len(body))
publication = DefaultPublication(self.app)
- outstream = StringIO()
- resp_payload = BrowserResponsePayload()
- response = HTTPResponse(resp_payload, outstream)
+ if outstream is None:
+ outstream = StringIO()
instream = StringIO(body)
- req_payload = BrowserRequestPayload(publication)
- request = HTTPRequest(req_payload, response, instream, env)
+ request = HTTPRequest(instream, outstream, env)
+ request.setPublication(publication)
return request
def _publisherResults(self, extra_env={}, body=""):
- request = self._createRequest(extra_env, body)
+ outstream = StringIO()
+ request = self._createRequest(extra_env, body, outstream=outstream)
publish(request)
- return request.response.body
+ return outstream.getvalue()
def testTraversalToItem(self):
res = self._publisherResults()
- self.failUnlessEqual(res, "'5', 6")
+ self.failUnlessEqual(
+ res,
+ "Status: 200 Ok\r\n"
+ "Content-Length: 6\r\n"
+ "X-Powered-By: Zope (www.zope.org), Python (www.python.org)\r\n"
+ "\r\n"
+ "'5', 6")
def testRequestEnvironment(self):
req = self._createRequest()
publish(req) # Force expansion of URL variables
- self.assertEquals(req['URL0'], 'http://foobar.com/folder/item')
- self.assertEquals(req['URL1'], 'http://foobar.com/folder')
- self.assertEquals(req['URL2'], 'http://foobar.com')
- self.assertRaises(KeyError, req.__getitem__, 'URL3')
-
- self.assertEquals(req['BASE0'], 'http://foobar.com')
- self.assertEquals(req['BASE1'], 'http://foobar.com')
- self.assertEquals(req['BASE2'], 'http://foobar.com/folder')
- self.assertEquals(req['BASE3'], 'http://foobar.com/folder/item')
- self.assertRaises(KeyError, req.__getitem__, 'BASE4')
-
- self.assertEquals(req['URLPATH0'], '/folder/item')
- self.assertEquals(req['URLPATH1'], '/folder')
- self.assertEquals(req['URLPATH2'], '')
- self.assertRaises(KeyError, req.__getitem__, 'URLPATH3')
-
- self.assertEquals(req['BASEPATH0'], '')
- self.assertEquals(req['BASEPATH1'], '')
- self.assertEquals(req['BASEPATH2'], '/folder')
- self.assertEquals(req['BASEPATH3'], '/folder/item')
- self.assertRaises(KeyError, req.__getitem__, 'BASEPATH4')
+ self.assertEquals(str(req.URL), 'http://foobar.com/folder/item')
+ self.assertEquals(req.URL['-1'], 'http://foobar.com/folder')
+ self.assertEquals(req.URL['-2'], 'http://foobar.com')
+ self.assertRaises(KeyError, req.URL.__getitem__, '-3')
+
+ self.assertEquals(req.URL['0'], 'http://foobar.com')
+ self.assertEquals(req.URL['1'], 'http://foobar.com/folder')
+ self.assertEquals(req.URL['2'], 'http://foobar.com/folder/item')
+ self.assertRaises(KeyError, req.URL.__getitem__, '3')
- self.assertEquals(req['URL'], 'http://foobar.com/folder/item')
self.assertEquals(req['SERVER_URL'], 'http://foobar.com')
self.assertEquals(req['HTTP_HOST'], 'foobar.com')
self.assertEquals(req['PATH_INFO'], '/folder/item')
- self.assertEquals(req['RESPONSE'], req.response)
self.assertEquals(req['CONTENT_LENGTH'], '0')
- self.assertEquals(req['HTTP_AUTHORIZATION'], '')
+ self.assertRaises(KeyError, req.__getitem__, 'HTTP_AUTHORIZATION')
self.assertEquals(req['GATEWAY_INTERFACE'], 'TestFooInterface/1.0')
self.assertEquals(req['HTTP_OFF_THE_WALL'], "Spam 'n eggs")
- self.assertEquals(req['HTTP_WE_DID_NOT_PROVIDE_THIS'], '')
+ self.assertRaises(KeyError, req.__getitem__,
+ 'HTTP_WE_DID_NOT_PROVIDE_THIS')
def testCookies(self):
cookies = {
@@ -132,8 +124,8 @@
def testBasicAuth(self):
from Zope.Publisher.HTTP.IHTTPCredentials import IHTTPCredentials
import base64
- verifyClass(IHTTPCredentials, HTTPRequest)
req = self._createRequest()
+ verifyObject(IHTTPCredentials, req)
lpq = req._authUserPW()
self.assertEquals(lpq, None)
env = {}
@@ -151,7 +143,7 @@
r = self._createRequest()
- self.failUnless( r.getViewType() is IBrowserPublisher)
+ self.failUnless( r.getViewType() is None)
self.assertEqual( r.getViewSkin(), '')
r.setViewSkin( 'morefoo' )
self.assertEqual( r.getViewSkin(), 'morefoo')