[Zope-CVS] CVS: Products/Zelenium - CHANGES.txt:1.17 zuite.py:1.10

Tres Seaver tseaver at zope.com
Mon May 2 21:03:24 EDT 2005


Update of /cvs-repository/Products/Zelenium
In directory cvs.zope.org:/tmp/cvs-serv1090

Modified Files:
	CHANGES.txt zuite.py 
Log Message:


  - Make ZIPfile generation work with nested suites.


=== Products/Zelenium/CHANGES.txt 1.16 => 1.17 ===
--- Products/Zelenium/CHANGES.txt:1.16	Mon May  2 20:40:05 2005
+++ Products/Zelenium/CHANGES.txt	Mon May  2 21:03:23 2005
@@ -1,5 +1,9 @@
 Zelenium Product Changelog
 
+  After Zelenium-0.4.1
+
+    - Make ZIPfile generation work with nested suites.
+
   Zelenium-0.4.1 (2005/05/02)
 
     - CVS tag:  'Zelenium-0_4_1'


=== Products/Zelenium/zuite.py 1.9 => 1.10 ===
--- Products/Zelenium/zuite.py:1.9	Thu Apr 28 17:12:42 2005
+++ Products/Zelenium/zuite.py	Mon May  2 21:03:23 2005
@@ -465,29 +465,47 @@
         stream = StringIO.StringIO()
         archive = zipfile.ZipFile( stream, 'w' )
 
+        self._getZipFile_recurse( archive )
+
+        for k, v in _SUPPORT_FILES.items():
+            archive.writestr( k, v.manage_FTPget() )
+
+        archive.close()
+        return stream.getvalue()
+
+
+    security.declarePrivate('_getZipFile_recurse')
+    def _getZipFile_recurse(self, archive, prefix=''):
+        """ Recursively add files to the archive.
+        """
         archive.writestr( 'index.html'
                         , self.index_html( suite_name='testSuite.html' ) )
 
-        test_cases = [ { 'id' :  self._getFilename( k )
-                       , 'title' : v.title_or_id()
-                       , 'data' : v.manage_FTPget()
-                       } for ( k, v ) in self.objectItems( [ 'File'
-                                                           , 'Page Template'
-                                                           ] ) ]
+        test_cases = []
+
+        for ( k, v ) in self.objectItems( self.test_case_metatypes ):
+            id =  self._getFilename( k )
+            path = prefix and '%s/%s' % ( prefix, id ) or id
+
+            test_cases.append( { 'id' :  id
+                               , 'title' : v.title_or_id()
+                               , 'url' : path
+                               , 'path' : path
+                               , 'data' : v.manage_FTPget()
+                               } )
 
         archive.writestr( 'testSuite.html'
                         , self.test_suite_html( test_cases=test_cases ) )
 
-        for k, v in _SUPPORT_FILES.items():
-            archive.writestr( k, v.manage_FTPget() )
-
         for test_case in test_cases:
-            archive.writestr( test_case[ 'id' ]
+            archive.writestr( test_case[ 'path' ]
                             , test_case[ 'data' ] )
 
-        archive.close()
-        return stream.getvalue()
-
+        for subsuite_id, subsuite in self.objectItems( self.meta_type ):
+            subsuite._getZipFile_recurse( archive
+                                        , prefix='%s/%s' % ( prefix 
+                                                           , subsuite_id )
+                                        )
 
 InitializeClass(Zuite)
 



More information about the Zope-CVS mailing list