Log message for revision 68877: OFS Image: Image and File now both support simple unicode objects for data (they function the same as strings for data).
Changed: U Zope/trunk/doc/CHANGES.txt U Zope/trunk/lib/python/OFS/Image.py U Zope/trunk/lib/python/OFS/tests/testFileAndImage.py -=- Modified: Zope/trunk/doc/CHANGES.txt =================================================================== --- Zope/trunk/doc/CHANGES.txt 2006-06-28 11:24:05 UTC (rev 68876) +++ Zope/trunk/doc/CHANGES.txt 2006-06-28 11:38:18 UTC (rev 68877) @@ -27,6 +27,9 @@ Bugs Fixed + - OFS Image: Image and File now both support simple unicode objects + for data (they function the same as strings for data). + - Collector #2122: fixed missing is_proxying_match definition in ZServer/HTTPServer Modified: Zope/trunk/lib/python/OFS/Image.py =================================================================== --- Zope/trunk/lib/python/OFS/Image.py 2006-06-28 11:24:05 UTC (rev 68876) +++ Zope/trunk/lib/python/OFS/Image.py 2006-06-28 11:38:18 UTC (rev 68877) @@ -43,7 +43,6 @@ from cgi import escape import transaction -StringType=type('') manage_addFileForm=DTMLFile('dtml/imageAdd', globals(),Kind='File',kind='file') def manage_addFile(self,id,file='',title='',precondition='', content_type='', REQUEST=None): @@ -231,7 +230,7 @@ RESPONSE.setStatus(206) # Partial content data = self.data - if type(data) is StringType: + if isinstance(data, basestring): RESPONSE.write(data[start:end]) return True @@ -302,7 +301,7 @@ 'Content-Range: bytes %d-%d/%d\r\n\r\n' % ( start, end - 1, self.size)) - if type(data) is StringType: + if isinstance(data, basestring): RESPONSE.write(data[start:end]) else: @@ -401,7 +400,7 @@ self.ZCacheable_set(None) data=self.data - if type(data) is type(''): + if isinstance(data, basestring): RESPONSE.setBase(None) return data @@ -481,7 +480,7 @@ if headers and headers.has_key('content-type'): content_type=headers['content-type'] else: - if type(body) is not type(''): body=body.data + if not isinstance(body, basestring): body=body.data content_type, enc=guess_content_type( getattr(file, 'filename',id), body, content_type) return content_type @@ -490,7 +489,7 @@ n=1 << 16 - if type(file) is StringType: + if isinstance(file, basestring): size=len(file) if size < n: return file, size # Big string: cut it into smaller chunks @@ -617,7 +616,7 @@ return result data = self.data - if type(data) is type(''): + if isinstance(data, basestring): RESPONSE.setBase(None) return data Modified: Zope/trunk/lib/python/OFS/tests/testFileAndImage.py =================================================================== --- Zope/trunk/lib/python/OFS/tests/testFileAndImage.py 2006-06-28 11:24:05 UTC (rev 68876) +++ Zope/trunk/lib/python/OFS/tests/testFileAndImage.py 2006-06-28 11:38:18 UTC (rev 68877) @@ -252,7 +252,15 @@ verifyClass(HTTPRangeInterface, File) verifyClass(WriteLockInterface, File) - + def testUnicodeWithIndexHtml(self): + # Introduced to help test the fact that Image.py has been + # changed to be lenient towards any basestring type, not just str + + val = u'some unicode string here' + self.file.manage_edit('foobar', 'text/plain', filedata=val) + s = self.file.index_html(self.app.REQUEST, self.app.REQUEST.RESPONSE) + self.assertEquals(s, val) + class ImageTests(FileTests): data = open(filedata, 'rb').read() content_type = 'image/gif' @@ -285,7 +293,6 @@ verifyClass(WriteLockInterface, Image) - def test_suite(): return unittest.TestSuite(( unittest.makeSuite(FileTests), _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins