Log message for revision 76217:
  integrated theuni's additional test from 2.11 (see r73132)
  

Changed:
  U   Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/HTTPRequest.py
  U   
Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/tests/testHTTPRequest.py

-=-
Modified: 
Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/HTTPRequest.py
===================================================================
--- Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/HTTPRequest.py  
2007-06-03 13:22:12 UTC (rev 76216)
+++ Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/HTTPRequest.py  
2007-06-03 13:24:55 UTC (rev 76217)
@@ -13,7 +13,7 @@
 
 __version__='$Revision: 1.96 $'[11:-2]
 
-import re, sys, os, time, random, codecs, inspect
+import re, sys, os, time, random, codecs, inspect, tempfile
 from types import StringType, UnicodeType
 from BaseRequest import BaseRequest, quote
 from HTTPResponse import HTTPResponse
@@ -339,7 +339,6 @@
         if script: script="%s/%s" % (server_url,script)
         else:      script=server_url
         other['URL']=self.script=script
-        other['method'] = environ.get('REQUEST_METHOD', 'GET').upper()
 
         ################################################################
         # Cookie values should *not* be appended to existing form
@@ -395,7 +394,7 @@
         taintedform=self.taintedform
 
         meth=None
-        fs=FieldStorage(fp=fp,environ=environ,keep_blank_values=1)
+        fs=ZopeFieldStorage(fp=fp,environ=environ,keep_blank_values=1)
         if not hasattr(fs,'list') or fs.list is None:
             # Hm, maybe it's an XML-RPC
             if (fs.headers.has_key('content-type') and
@@ -1418,7 +1417,11 @@
         except: pass
     return dict
 
+class ZopeFieldStorage(FieldStorage):
 
+    def make_file(self, binary=None):
+        return tempfile.NamedTemporaryFile("w+b")
+
 class FileUpload:
     '''\
     File upload objects
@@ -1443,7 +1446,7 @@
         else: methods= ['close', 'fileno', 'flush', 'isatty',
                         'read', 'readline', 'readlines', 'seek',
                         'tell', 'truncate', 'write', 'writelines',
-                        '__iter__','next'] # see Collector 1837
+                        '__iter__','next', 'name'] # see Collector 1837
 
         d=self.__dict__
         for m in methods:

Modified: 
Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/tests/testHTTPRequest.py
===================================================================
--- 
Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/tests/testHTTPRequest.py
        2007-06-03 13:22:12 UTC (rev 76216)
+++ 
Zope/branches/Zope211-3.4-integration/lib/python/ZPublisher/tests/testHTTPRequest.py
        2007-06-03 13:24:55 UTC (rev 76217)
@@ -1,8 +1,17 @@
 import unittest
 from urllib import quote_plus
 
-class AuthCredentialsTests( unittest.TestCase ):
+TEST_LARGEFILE_DATA = '''
+--12345
+Content-Disposition: form-data; name="file"; filename="file"
+Content-Type: application/octet-stream
 
+test %s
+
+''' % ('test' * 1000)
+
+class AuthCredentialsTestsa( unittest.TestCase ):
+
     def _getTargetClass(self):
         from ZPublisher.HTTPRequest import HTTPRequest
         return HTTPRequest
@@ -684,6 +693,17 @@
         req.close()
         self.assertEqual(start_count, sys.getrefcount(s))  # The test
 
+    def testFileName(self):
+        # checks fileupload object supports the filename
+        from StringIO import StringIO
+        s = StringIO(TEST_LARGEFILE_DATA)
+        env = TEST_ENVIRON.copy()
+        from ZPublisher.HTTPRequest import HTTPRequest
+        req = HTTPRequest(s, env, None)
+        req.processInputs()
+        f = req.form.get('file')
+        self.assert_(f.name)
+
     def testFileIterator(self):
         # checks fileupload object supports the iterator protocol
         # collector entry 1837
@@ -739,26 +759,7 @@
         from zope.publisher.base import DebugFlags
         self.assertEqual(getDebug(request), '1')
         self.assert_(isinstance(getDebugFromZope3(request), DebugFlags))
-        
-    def testMethod(self):
-        TEST_ENVIRON = {
-            'REQUEST_METHOD': 'GET',
-            'SERVER_NAME': 'localhost',
-            'SERVER_PORT': '80',
-            }
-        from StringIO import StringIO
-        from ZPublisher.HTTPRequest import HTTPRequest
-        s = StringIO('')
 
-        env = TEST_ENVIRON.copy()
-        request = HTTPRequest(s, env, None)
-        self.assertEqual(request.method, 'GET')
-        
-        env = TEST_ENVIRON.copy()
-        env['REQUEST_METHOD'] = 'post'
-        request = HTTPRequest(s, env, None)
-        self.assertEqual(request.method, 'POST')
-
     def testTrustedProxies(self):
         TEST_ENVIRON = {
             'REQUEST_METHOD': 'GET',
@@ -793,7 +794,7 @@
 
 def test_suite():
     suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(AuthCredentialsTests, 'test'))
+    suite.addTest(unittest.makeSuite(AuthCredentialsTestsa, 'test'))
     suite.addTest(unittest.makeSuite(RecordTests, 'test'))
     suite.addTest(unittest.makeSuite(ProcessInputsTests, 'test'))
     suite.addTest(unittest.makeSuite(RequestTests, 'test'))

_______________________________________________
Zope-Checkins maillist  -  Zope-Checkins@zope.org
http://mail.zope.org/mailman/listinfo/zope-checkins

Reply via email to