[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 ===