[Zope-Checkins] CVS: Zope3/lib/python/Zope/Publisher/HTTP/tests - testHTTP.py:1.1.2.6.2.1 testPublisher.py:NONE
Jim Fulton
jim@zope.com
Mon, 25 Mar 2002 18:30:43 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/Publisher/HTTP/tests
In directory cvs.zope.org:/tmp/cvs-serv31034/Zope/Publisher/HTTP/tests
Modified Files:
Tag: Zope3-publisher-refactor-branch
testHTTP.py
Removed Files:
Tag: Zope3-publisher-refactor-branch
testPublisher.py
Log Message:
Refactord BaseRequest/BaseResponse and HTTPRequest/Response some more:
- Use slots so I can keep track of what's going on. ;)
- Use properties for environment, cookies, headers, URLs.
- Put URL responsibilities in HTTPRequest.
- Have HTTP traverse delegate to and augment Base traverse.
=== Zope3/lib/python/Zope/Publisher/HTTP/tests/testHTTP.py 1.1.2.6 => 1.1.2.6.2.1 ===
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 +54,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 = {
@@ -151,7 +146,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')
=== Removed File Zope3/lib/python/Zope/Publisher/HTTP/tests/testPublisher.py ===