[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