[CalendarServer-changes] [5768] CalDAVTester/trunk/src

source_changes at macosforge.org source_changes at macosforge.org
Thu Jun 17 09:34:52 PDT 2010


Revision: 5768
          http://trac.macosforge.org/projects/calendarserver/changeset/5768
Author:   cdaboo at apple.com
Date:     2010-06-17 09:34:51 -0700 (Thu, 17 Jun 2010)
Log Message:
-----------
Do required-feature processing on requests too.

Modified Paths:
--------------
    CalDAVTester/trunk/src/caldavtest.py
    CalDAVTester/trunk/src/request.py

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2010-06-17 01:55:15 UTC (rev 5767)
+++ CalDAVTester/trunk/src/caldavtest.py	2010-06-17 16:34:51 UTC (rev 5768)
@@ -401,6 +401,11 @@
     
     def dorequest( self, req, details=False, doverify = True, forceverify = False, stats = None, etags = None, label = "" ):
         
+        if len(req.missingFeatures()) != 0:
+            #self.manager.log(manager.LOG_HIGH, "[IGNORED]")
+            #self.manager.log(manager.LOG_HIGH, "      Missing features: %s" % (", ".join(sorted(req.missingFeatures())),))
+            return True, "", None, None
+
         # Special check for DELETEALL
         if req.method == "DELETEALL":
             for ruri in req.ruris:

Modified: CalDAVTester/trunk/src/request.py
===================================================================
--- CalDAVTester/trunk/src/request.py	2010-06-17 01:55:15 UTC (rev 5767)
+++ CalDAVTester/trunk/src/request.py	2010-06-17 16:34:51 UTC (rev 5768)
@@ -127,7 +127,7 @@
     """
     __slots__  = ['manager', 'auth', 'user', 'pswd', 'end_delete', 'print_response',
                   'method', 'headers', 'ruris', 'ruri', 'data', 'datasubs', 'verifiers',
-                  'grabheader', 'grabproperty', 'grabelement']
+                  'grabheader', 'grabproperty', 'grabelement', 'require_features']
     
     def __init__( self, manager ):
         self.manager = manager
@@ -136,6 +136,7 @@
         self.pswd = ""
         self.end_delete = False
         self.print_response = False
+        self.require_features = set()
         self.method = ""
         self.headers = {}
         self.ruris = []
@@ -150,6 +151,9 @@
     def __str__(self):
         return "Method: %s; uris: %s" % (self.method, self.ruris if len(self.ruris) > 1 else self.ruri,)
 
+    def missingFeatures(self):
+        return self.require_features - self.manager.server_info.features
+
     def getURI( self, si ):
         return si.extrasubs(self.ruri)
         
@@ -271,7 +275,9 @@
         self.print_response = node.getAttribute( src.xmlDefs.ATTR_PRINT_RESPONSE ) == src.xmlDefs.ATTR_VALUE_YES
 
         for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_METHOD:
+            if child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+                self.parseFeatures( child )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_METHOD:
                 self.method = child.firstChild.data.encode("utf-8")
             elif child._get_localName() == src.xmlDefs.ELEMENT_HEADER:
                 self.parseHeader(child)
@@ -292,6 +298,11 @@
             elif child._get_localName() == src.xmlDefs.ELEMENT_GRABELEMENT:
                 self.parseGrab(child, self.grabelement)
 
+    def parseFeatures(self, node):
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_FEATURE:
+                self.require_features.add(child.firstChild.data.encode("utf-8"))
+
     def parseHeader(self, node):
         
         name = None
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100617/a7ead19e/attachment.html>


More information about the calendarserver-changes mailing list