CVS: Products/Zelenium - zuite.py:1.20

Tres Seaver <[email protected]>
Newsgroups gmane.comp.web.zope.public-cvs
Message-ID <[email protected]>
Update of /cvs-repository/Products/Zelenium
In directory cvs.zope.org:/tmp/cvs-serv8528

Modified Files:
	zuite.py 
Log Message:
 - Make FS-based proxies runnable in standalone mode.


=== Products/Zelenium/zuite.py 1.19 => 1.20 ===
--- Products/Zelenium/zuite.py:1.19	Mon May  9 15:05:06 2005
+++ Products/Zelenium/zuite.py	Tue May 10 10:55:20 2005
@@ -78,6 +78,33 @@
 
 _MARKER = object()
 
+
+def _recurseFSTestCases( result, prefix, fsobjs ):
+
+    test_cases = dict( [ ( x.getId(), x )
+                            for x in fsobjs.get( 'testcases', () ) ] )
+    subdirs = fsobjs.get( 'subdirs', {} )
+
+    for name in fsobjs.get( 'ordered', [] ):
+
+        if name in test_cases:
+            test_case = test_cases[ name ]
+            name = test_case.getId()
+            path = '/'.join( prefix + ( name, ) )
+            result.append( { 'id' : name
+                            , 'title' : test_case.title_or_id()
+                            , 'url' : path
+                            , 'path' : path
+                            , 'test_case' : test_case
+                            } )
+
+        if name in subdirs:
+            info = subdirs[ name ]
+            _recurseFSTestCases( result
+                               , prefix + ( name, )
+                               , info
+                               )
+
 class Zuite( OrderedFolder ):
     """ TTW-manageable browser test suite
 
@@ -142,7 +169,8 @@
         if key in _SUPPORT_FILE_NAMES:
             return _SUPPORT_FILES[ key ].__of__( self )
 
-        proxy = _FilesystemProxy( self._listFilesystemObjects()
+        proxy = _FilesystemProxy( key
+                                , self._listFilesystemObjects()
                                 ).__of__( self )
 
         value = proxy.get( key, default )
@@ -176,38 +204,11 @@
 
         fsobjs = self._listFilesystemObjects()
 
-        self._recurseFSTestCases( result, prefix, fsobjs )
+        _recurseFSTestCases( result, prefix, fsobjs )
 
         return result
 
 
-    security.declarePrivate( '_recurseFSTestCases' )
-    def _recurseFSTestCases( self, result, prefix, fsobjs ):
-
-        test_cases = dict( [ ( x.getId(), x )
-                                for x in fsobjs.get( 'testcases', () ) ] )
-        subdirs = fsobjs.get( 'subdirs', {} )
-
-        for name in fsobjs.get( 'ordered', [] ):
-
-            if name in test_cases:
-                test_case = test_cases[ name ]
-                name = test_case.getId()
-                path = '/'.join( prefix + ( name, ) )
-                result.append( { 'id' : name
-                               , 'title' : test_case.title_or_id()
-                               , 'url' : path
-                               , 'path' : path
-                               , 'test_case' : test_case
-                               } )
-
-            if name in subdirs:
-                info = subdirs[ name ]
-                self._recurseFSTestCases( result
-                                        , prefix + ( name, )
-                                        , info
-                                        )
-
 
     security.declareProtected(ManageSeleniumTestCases, 'getZipFileName')
     def getZipFileName(self):
@@ -628,29 +629,47 @@
 
     security = ClassSecurityInfo()
 
-    def __init__( self, fsobjs ):
+    def __init__( self, id, fsobjs ):
 
+        self._setId( id )
         self._fsobjs = fsobjs
 
+    def __getitem__( self, key ):
+
+        return self.get( key )
+
+    security.declareProtected( View, 'index_html' )
+    index_html = PageTemplateFile( 'suiteView', _WWW_DIR )
+
+    security.declareProtected( View, 'test_suite_html' )
+    test_suite_html = PageTemplateFile( 'suiteTests', _WWW_DIR )
+
     security.declareProtected( View, 'get' )
     def get( self, key, default=_MARKER ):
 
         for tc in self._fsobjs[ 'testcases' ]:
             if tc.getId() == key:
-                return tc.__of__( self )
+                return tc.__of__( self.aq_parent )
 
         if key in self._fsobjs[ 'subdirs' ]:
-            return self.__class__( self._fsobjs[ 'subdirs' ][ key ]
-                                 ).__of__( self )
+            return self.__class__( key, self._fsobjs[ 'subdirs' ][ key ]
+                                 ).__of__( self.aq_parent )
+
+        if key in _SUPPORT_FILE_NAMES:
+            return _SUPPORT_FILES[ key ].__of__( self )
 
         if default is not _MARKER:
             return default
 
         raise KeyError, key
 
-    def __getitem__( self, key ):
-
-        return self.get( key )
+    security.declareProtected( View, 'listTestCases' )
+    def listTestCases( self, prefix=() ):
+        """ Return a list of our contents which qualify as test cases.
+        """
+        result = []
+        _recurseFSTestCases( result, prefix, self._fsobjs )
+        return result
 
 InitializeClass( _FilesystemProxy )
 

_______________________________________________
Zope-CVS maillist  -  [email protected]
http://mail.zope.org/mailman/listinfo/zope-cvs

Zope CVS instructions: http://dev.zope.org/CVS
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.