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

Changed:
  U   Zope/branches/2.10-with-ZODB3.8/doc/CHANGES.txt
  U   Zope/branches/2.10-with-ZODB3.8/lib/python/ZPublisher/HTTPRequest.py
  U   
Zope/branches/2.10-with-ZODB3.8/lib/python/ZPublisher/tests/testHTTPRequest.py

-=-
Modified: Zope/branches/2.10-with-ZODB3.8/doc/CHANGES.txt
===================================================================
--- Zope/branches/2.10-with-ZODB3.8/doc/CHANGES.txt     2007-06-03 12:27:07 UTC 
(rev 76208)
+++ Zope/branches/2.10-with-ZODB3.8/doc/CHANGES.txt     2007-06-03 12:42:41 UTC 
(rev 76209)
@@ -4,6 +4,10 @@
   Change information for previous versions of Zope can be found in the
   file HISTORY.txt.
 
+  Blob-support branch
+
+      - Backported feature from Zope 2.11 to support named temporary files.
+
   Zope 2.10.4 (unreleased)
 
     Bugs fixed

Modified: Zope/branches/2.10-with-ZODB3.8/lib/python/ZPublisher/HTTPRequest.py
===================================================================
--- Zope/branches/2.10-with-ZODB3.8/lib/python/ZPublisher/HTTPRequest.py        
2007-06-03 12:27:07 UTC (rev 76208)
+++ Zope/branches/2.10-with-ZODB3.8/lib/python/ZPublisher/HTTPRequest.py        
2007-06-03 12:42:41 UTC (rev 76209)
@@ -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
@@ -394,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
@@ -1417,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
@@ -1442,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/2.10-with-ZODB3.8/lib/python/ZPublisher/tests/testHTTPRequest.py
===================================================================
--- 
Zope/branches/2.10-with-ZODB3.8/lib/python/ZPublisher/tests/testHTTPRequest.py  
    2007-06-03 12:27:07 UTC (rev 76208)
+++ 
Zope/branches/2.10-with-ZODB3.8/lib/python/ZPublisher/tests/testHTTPRequest.py  
    2007-06-03 12:42:41 UTC (rev 76209)
@@ -1,6 +1,15 @@
 import unittest
 from urllib import quote_plus
 
+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):
@@ -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

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

Reply via email to