[CalendarServer-changes] [8223] CalDAVTester/branches/users/cdaboo/component-set-fixes/src

source_changes at macosforge.org source_changes at macosforge.org
Tue Oct 25 12:42:42 PDT 2011


Revision: 8223
          http://trac.macosforge.org/projects/calendarserver/changeset/8223
Author:   cdaboo at apple.com
Date:     2011-10-25 12:42:42 -0700 (Tue, 25 Oct 2011)
Log Message:
-----------
Allow verifiers to make use of require-feature, exclude-feature, so that conditional results can be checked.

Modified Paths:
--------------
    CalDAVTester/branches/users/cdaboo/component-set-fixes/src/caldavtest.py
    CalDAVTester/branches/users/cdaboo/component-set-fixes/src/request.py

Modified: CalDAVTester/branches/users/cdaboo/component-set-fixes/src/caldavtest.py
===================================================================
--- CalDAVTester/branches/users/cdaboo/component-set-fixes/src/caldavtest.py	2011-10-25 19:41:53 UTC (rev 8222)
+++ CalDAVTester/branches/users/cdaboo/component-set-fixes/src/caldavtest.py	2011-10-25 19:42:42 UTC (rev 8223)
@@ -617,6 +617,10 @@
             result = True
             resulttxt = ""
             for verifier in req.verifiers:
+                if len(verifier.missingFeatures()) != 0:
+                    continue
+                if len(verifier.excludedFeatures()) != 0:
+                    continue
                 iresult, iresulttxt = verifier.doVerify(uri, response, respdata)
                 if not iresult:
                     result = False

Modified: CalDAVTester/branches/users/cdaboo/component-set-fixes/src/request.py
===================================================================
--- CalDAVTester/branches/users/cdaboo/component-set-fixes/src/request.py	2011-10-25 19:41:53 UTC (rev 8222)
+++ CalDAVTester/branches/users/cdaboo/component-set-fixes/src/request.py	2011-10-25 19:42:42 UTC (rev 8223)
@@ -427,9 +427,17 @@
     
     def __init__( self, manager ):
         self.manager = manager
+        self.require_features = set()
+        self.exclude_features = set()
         self.callback = None
         self.args = {}
     
+    def missingFeatures(self):
+        return self.require_features - self.manager.server_info.features
+
+    def excludedFeatures(self):
+        return self.exclude_features & self.manager.server_info.features
+
     def doVerify(self, uri, response, respdata):
         
         # Re-do substitutions from values generated during the current test run
@@ -452,11 +460,20 @@
     def parseXML( self, node ):
 
         for child in node.getchildren():
-            if child.tag == src.xmlDefs.ELEMENT_CALLBACK:
+            if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+                self.parseFeatures( child, require=True )
+            elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
+                self.parseFeatures( child, require=False )
+            elif child.tag == src.xmlDefs.ELEMENT_CALLBACK:
                 self.callback = child.text.encode("utf-8")
             elif child.tag == src.xmlDefs.ELEMENT_ARG:
                 self.parseArgXML(child)
 
+    def parseFeatures(self, node, require=True):
+        for child in node.getchildren():
+            if child.tag == src.xmlDefs.ELEMENT_FEATURE:
+                (self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
+
     def parseArgXML(self, node):
         name = None
         values = []
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111025/68b21fc9/attachment-0001.html>


More information about the calendarserver-changes mailing list