[Checkins] SVN: Zelenium/trunk/zuite.py fix so that tests do pass
with Zope 2.10
Godefroid Chapelle
gotcha at bubblenet.be
Fri Nov 17 09:04:28 EST 2006
Log message for revision 71152:
fix so that tests do pass with Zope 2.10
unicode is encoded to latin1 to ensure WinZip compatibility (according to python documentation)
Changed:
U Zelenium/trunk/zuite.py
-=-
Modified: Zelenium/trunk/zuite.py
===================================================================
--- Zelenium/trunk/zuite.py 2006-11-17 13:22:41 UTC (rev 71151)
+++ Zelenium/trunk/zuite.py 2006-11-17 14:04:28 UTC (rev 71152)
@@ -11,6 +11,7 @@
from urllib import unquote
import zipfile
import StringIO
+import types
from zope.interface import implements
@@ -24,7 +25,6 @@
from OFS.Folder import Folder
from OFS.Image import File
from OFS.OrderedFolder import OrderedFolder
-from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
from interfaces import IZuite
@@ -38,7 +38,11 @@
_PINK_BACKGROUND = re.compile('bgcolor="#ffcfcf"')
_EXCLUDE_NAMES = ( 'CVS', '.svn', '.objects' )
+
+#winzip awaits latin1
+_DEFAULTENCODING = 'latin1'
+
def _getNow():
if _NOW is not None:
return _NOW
@@ -464,8 +468,15 @@
stream = StringIO.StringIO()
archive = zipfile.ZipFile( stream, 'w' )
+
+ def convertToBytes(body):
+ if isinstance(body, types.UnicodeType):
+ return body.encode(_DEFAULTENCODING)
+ else:
+ return body
+
archive.writestr( 'index.html'
- , self.index_html( suite_name='testSuite.html' ) )
+ , convertToBytes(self.index_html( suite_name='testSuite.html' ) ) )
test_cases = self.listTestCases()
@@ -490,7 +501,7 @@
_ensurePath( prefix, elements[ i ] )
archive.writestr( 'testSuite.html'
- , self.test_suite_html( test_cases=test_cases ) )
+ , convertToBytes(self.test_suite_html( test_cases=test_cases ) ) )
for pathname, filenames in paths.items():
@@ -499,9 +510,8 @@
else:
filename = '%s/.objects' % pathname
- archive.writestr( filename
- , '\n'.join( filenames )
- )
+ archive.writestr( convertToBytes(filename)
+ , convertToBytes(u'\n'.join( filenames ) ) )
for info in test_cases:
test_case = info[ 'test_case' ]
@@ -511,14 +521,14 @@
else:
body = test_case.manage_FTPget()
- archive.writestr( info[ 'path' ]
- , body
- )
+ archive.writestr( convertToBytes(info[ 'path' ])
+ , convertToBytes(body) )
if include_selenium:
for k, v in _SUPPORT_FILES.items():
- archive.writestr( k, v.__of__(self).manage_FTPget() )
+ archive.writestr( convertToBytes(k),
+ convertToBytes(v.__of__(self).manage_FTPget() ) )
archive.close()
return stream.getvalue()
More information about the Checkins
mailing list