[Zope-Checkins] SVN: Zope/branches/elro-remove-request-container/src/Testing/ revert changes to makerequest, need a different approach here

Laurence Rowe l at lrowe.co.uk
Sat Jan 22 11:59:32 EST 2011


Log message for revision 119842:
  revert changes to makerequest, need a different approach here

Changed:
  U   Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/sandbox.py
  U   Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/utils.py
  U   Zope/branches/elro-remove-request-container/src/Testing/makerequest.py
  U   Zope/branches/elro-remove-request-container/src/Testing/tests/test_makerequest.py

-=-
Modified: Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/sandbox.py
===================================================================
--- Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/sandbox.py	2011-01-22 16:49:26 UTC (rev 119841)
+++ Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/sandbox.py	2011-01-22 16:59:32 UTC (rev 119842)
@@ -19,7 +19,9 @@
 import utils
 import connections
 
+from zope.globalrequest import setRequest, clearRequest
 
+
 class Sandboxed:
     '''Derive from this class and an xTestCase to make each test
        run in its own ZODB sandbox::
@@ -32,7 +34,8 @@
         '''Returns the app object for a test.'''
         app = Zope2.app(Zope2.sandbox().open())
         AppZapper().set(app)
-        app = utils.makerequest(app)
+        req = utils.newrequest()
+        setRequest(req)
         connections.register(app)
         return app
 
@@ -41,6 +44,7 @@
         AppZapper().clear()
         transaction.abort()
         connections.closeAll()
+        clearRequest()
 
 
 class AppZapper:

Modified: Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/utils.py
===================================================================
--- Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/utils.py	2011-01-22 16:49:26 UTC (rev 119841)
+++ Zope/branches/elro-remove-request-container/src/Testing/ZopeTestCase/utils.py	2011-01-22 16:59:32 UTC (rev 119842)
@@ -118,6 +118,16 @@
     return _makerequest(app, stdout=stdout, environ=environ)
 
 
+def makerequest(stdout=sys.stdout):
+    '''Wraps the app into a fresh REQUEST.'''
+    from Testing.makerequest import newrequest as _newrequest
+    environ = {}
+    environ['SERVER_NAME'] = _Z2HOST or 'nohost'
+    environ['SERVER_PORT'] = '%d' % (_Z2PORT or 80)
+    environ['REQUEST_METHOD'] = 'GET'
+    return _newrequest(stdout=stdout, environ=environ)
+
+
 def appcall(func, *args, **kw):
     '''Calls a function passing 'app' as first argument.'''
     from base import app, close

Modified: Zope/branches/elro-remove-request-container/src/Testing/makerequest.py
===================================================================
--- Zope/branches/elro-remove-request-container/src/Testing/makerequest.py	2011-01-22 16:49:26 UTC (rev 119841)
+++ Zope/branches/elro-remove-request-container/src/Testing/makerequest.py	2011-01-22 16:59:32 UTC (rev 119842)
@@ -19,7 +19,7 @@
 from sys import stdin, stdout
 from ZPublisher.HTTPRequest import HTTPRequest
 from ZPublisher.HTTPResponse import HTTPResponse
-from zope.globalrequest import setRequest
+from ZPublisher.BaseRequest import RequestContainer
 
 def makerequest(app, stdout=stdout, environ=None):
     """
@@ -61,6 +61,6 @@
     # Zope3-style view look-ups.
     from zope.publisher.browser import setDefaultSkin
     setDefaultSkin(req)
-    setRequest(req)
 
-    return app
+    requestcontainer = RequestContainer(REQUEST = req)
+    return app.__of__(requestcontainer)

Modified: Zope/branches/elro-remove-request-container/src/Testing/tests/test_makerequest.py
===================================================================
--- Zope/branches/elro-remove-request-container/src/Testing/tests/test_makerequest.py	2011-01-22 16:49:26 UTC (rev 119841)
+++ Zope/branches/elro-remove-request-container/src/Testing/tests/test_makerequest.py	2011-01-22 16:59:32 UTC (rev 119842)
@@ -17,29 +17,24 @@
 
 from Acquisition import Implicit
 from Testing.makerequest import makerequest
-from OFS.Application import Application
-from zope.globalrequest import getRequest, clearRequest
+from OFS.SimpleItem import SimpleItem
 
 class MakerequestTests(unittest.TestCase):
 
-    def tearDown(self):
-        clearRequest()
-
     def test_makerequest(self):
         # The argument must support acquisition.
-        #self.assertRaises(AttributeError, makerequest, object())
+        self.assertRaises(AttributeError, makerequest, object())
         # After the call, it will have a REQUEST attribute.
-        app = Application()
-        self.assertFalse(hasattr(app, 'REQUEST'))
-        app = makerequest(app)
-        self.failUnless(getRequest() is not None)
-        self.assertTrue(hasattr(app, 'REQUEST'))
+        item = Implicit()
+        self.assertFalse(hasattr(item, 'REQUEST'))
+        item = makerequest(item)
+        self.assertTrue(hasattr(item, 'REQUEST'))
     
     def test_dont_break_getPhysicalPath(self):
         # see http://www.zope.org/Collectors/Zope/2057.  If you want
         # to call getPhysicalPath() on the wrapped object, be sure
         # that it provides a non-recursive getPhysicalPath().
-        class FakeRoot(Application):
+        class FakeRoot(SimpleItem):
             def getPhysicalPath(self):
                 return ('foo',)
         item = FakeRoot()
@@ -50,8 +45,8 @@
         # You can pass a stdout arg and it's used by the response.
         import cStringIO
         out = cStringIO.StringIO()
-        app = makerequest(Application(), stdout=out)
-        app.REQUEST.RESPONSE.write('aaa')
+        item = makerequest(SimpleItem(), stdout=out)
+        item.REQUEST.RESPONSE.write('aaa')
         out.seek(0)
         written = out.read()
         self.assertTrue(written.startswith('Status: 200 OK\r\n'))
@@ -60,8 +55,8 @@
     def test_environ(self):
         # You can pass an environ argument to use in the request.
         environ = {'foofoo': 'barbar'}
-        app = makerequest(Application(), environ=environ)
-        self.assertEqual(app.REQUEST.environ['foofoo'], 'barbar')
+        item = makerequest(SimpleItem(), environ=environ)
+        self.assertEqual(item.REQUEST.environ['foofoo'], 'barbar')
 
 def test_suite():
     suite = unittest.TestSuite()



More information about the Zope-Checkins mailing list