[CalendarServer-changes] [6798] CalDAVTester/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Fri Jan 21 13:23:34 PST 2011
Revision: 6798
http://trac.macosforge.org/projects/calendarserver/changeset/6798
Author: cdaboo at apple.com
Date: 2011-01-21 13:23:33 -0800 (Fri, 21 Jan 2011)
Log Message:
-----------
Add exclude-feature option to allow for "if/else" style feature matching.
Modified Paths:
--------------
CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
CalDAVTester/trunk/src/caldavtest.py
CalDAVTester/trunk/src/request.py
CalDAVTester/trunk/src/test.py
CalDAVTester/trunk/src/testsuite.py
CalDAVTester/trunk/src/xmlDefs.py
Modified: CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd 2011-01-21 18:08:36 UTC (rev 6797)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd 2011-01-21 21:23:33 UTC (rev 6798)
@@ -21,13 +21,15 @@
<!ELEMENT require-feature (feature*)>
<!ELEMENT feature (#PCDATA)>
+ <!ELEMENT exclude-feature (feature*)>
+ <!ELEMENT feature (#PCDATA)>
<!ELEMENT start (request*)>
<!ELEMENT end (request*)>
<!ELEMENT pause EMPTY>
- <!ELEMENT request (require-feature?, method, ruri*, header*, data?, verify*, grabheader*, grabproperty*, grabelement*)>
+ <!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*, grabheader*, grabproperty*, grabelement*)>
<!ATTLIST request auth (yes|no) "yes"
user CDATA ""
pswd CDATA ""
@@ -58,11 +60,11 @@
<!ELEMENT grabelement (name, variable)>
- <!ELEMENT test-suite (require-feature?, test*)>
+ <!ELEMENT test-suite (require-feature?, exclude-feature?, test*)>
<!ATTLIST test-suite name CDATA #REQUIRED
ignore (yes|no) "no">
- <!ELEMENT test (require-feature?, description?, (request|pause)+)>
+ <!ELEMENT test (require-feature?, exclude-feature?, description?, (request|pause)+)>
<!ATTLIST test name CDATA #REQUIRED
count CDATA "1"
stats (yes|no) "no"
Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py 2011-01-21 18:08:36 UTC (rev 6797)
+++ CalDAVTester/trunk/src/caldavtest.py 2011-01-21 21:23:33 UTC (rev 6798)
@@ -43,6 +43,7 @@
self.name = name
self.description = ""
self.require_features = set()
+ self.exclude_features = set()
self.ignore_all = False
self.start_requests = []
self.end_requests = []
@@ -53,11 +54,18 @@
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 run( self ):
if len(self.missingFeatures()) != 0:
self.manager.log(manager.LOG_HIGH, "----- Ignoring Tests from \"%s\"... -----" % self.name, before=1)
self.manager.log(manager.LOG_HIGH, " Missing features: %s" % (", ".join(sorted(self.missingFeatures())),))
return 0, 0, 1
+ if len(self.excludedFeatures()) != 0:
+ self.manager.log(manager.LOG_HIGH, "----- Ignoring Tests from \"%s\"... -----" % self.name, before=1)
+ self.manager.log(manager.LOG_HIGH, " Excluded features: %s" % (", ".join(sorted(self.excludedFeatures())),))
+ return 0, 0, 1
try:
self.manager.log(manager.LOG_HIGH, "----- Running Tests from \"%s\"... -----" % self.name, before=1)
@@ -105,6 +113,10 @@
self.manager.log(manager.LOG_HIGH, "[IGNORED]")
self.manager.log(manager.LOG_HIGH, " Missing features: %s" % (", ".join(sorted(suite.missingFeatures())),))
ignored = len(suite.tests)
+ elif len(suite.excludedFeatures()) != 0:
+ self.manager.log(manager.LOG_HIGH, "[IGNORED]")
+ self.manager.log(manager.LOG_HIGH, " Excluded features: %s" % (", ".join(sorted(suite.excludedFeatures())),))
+ ignored = len(suite.tests)
else:
self.manager.log(manager.LOG_HIGH, "")
postgresCount = self.postgresInit()
@@ -139,6 +151,10 @@
self.manager.log(manager.LOG_HIGH, "[IGNORED]")
self.manager.log(manager.LOG_HIGH, " Missing features: %s" % (", ".join(sorted(test.missingFeatures())),))
return "i"
+ elif len(test.excludedFeatures()) != 0:
+ self.manager.log(manager.LOG_HIGH, "[IGNORED]")
+ self.manager.log(manager.LOG_HIGH, " Excluded features: %s" % (", ".join(sorted(test.excludedFeatures())),))
+ return "i"
else:
result = False
resulttxt = ""
@@ -401,6 +417,10 @@
#self.manager.log(manager.LOG_HIGH, "[IGNORED]")
#self.manager.log(manager.LOG_HIGH, " Missing features: %s" % (", ".join(sorted(req.missingFeatures())),))
return True, "", None, None
+ if len(req.excludedFeatures()) != 0:
+ #self.manager.log(manager.LOG_HIGH, "[IGNORED]")
+ #self.manager.log(manager.LOG_HIGH, " Excluded features: %s" % (", ".join(sorted(req.excludedFeatures())),))
+ return True, "", None, None
# Special check for DELETEALL
if req.method == "DELETEALL":
@@ -585,7 +605,9 @@
if child.tag == src.xmlDefs.ELEMENT_DESCRIPTION:
self.description = child.text
elif child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures(child)
+ self.parseFeatures(child, require=True)
+ elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
+ self.parseFeatures(child, require=False)
elif child.tag == src.xmlDefs.ELEMENT_START:
self.start_requests = request.parseList(self.manager, child)
elif child.tag == src.xmlDefs.ELEMENT_TESTSUITE:
@@ -595,10 +617,10 @@
elif child.tag == src.xmlDefs.ELEMENT_END:
self.end_requests = request.parseList(self.manager, child)
- def parseFeatures(self, node):
+ def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
- self.require_features.add(child.text.encode("utf-8"))
+ (self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
def extractProperty(self, propertyname, respdata):
Modified: CalDAVTester/trunk/src/request.py
===================================================================
--- CalDAVTester/trunk/src/request.py 2011-01-21 18:08:36 UTC (rev 6797)
+++ CalDAVTester/trunk/src/request.py 2011-01-21 21:23:33 UTC (rev 6798)
@@ -141,6 +141,7 @@
self.end_delete = False
self.print_response = False
self.require_features = set()
+ self.exclude_features = set()
self.method = ""
self.headers = {}
self.ruris = []
@@ -158,6 +159,9 @@
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 getURI( self, si ):
uri = si.extrasubs(self.ruri)
if "**" in uri:
@@ -305,7 +309,9 @@
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures( child )
+ self.parseFeatures( child, require=True )
+ elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
+ self.parseFeatures( child, require=False )
elif child.tag == src.xmlDefs.ELEMENT_METHOD:
self.method = child.text.encode("utf-8")
elif child.tag == src.xmlDefs.ELEMENT_HEADER:
@@ -327,10 +333,10 @@
elif child.tag == src.xmlDefs.ELEMENT_GRABELEMENT:
self.parseGrab(child, self.grabelement)
- def parseFeatures(self, node):
+ def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
- self.require_features.add(child.text.encode("utf-8"))
+ (self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
def parseHeader(self, node):
Modified: CalDAVTester/trunk/src/test.py
===================================================================
--- CalDAVTester/trunk/src/test.py 2011-01-21 18:08:36 UTC (rev 6797)
+++ CalDAVTester/trunk/src/test.py 2011-01-21 21:23:33 UTC (rev 6798)
@@ -37,12 +37,16 @@
self.stats = False
self.ignore = False
self.require_features = set()
+ self.exclude_features = set()
self.description = ""
self.requests = []
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 parseXML( self, node ):
self.name = node.get(src.xmlDefs.ATTR_NAME, "")
self.details = getYesNoAttributeValue(node, src.xmlDefs.ATTR_DETAILS)
@@ -52,17 +56,19 @@
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures( child )
+ self.parseFeatures( child, require=True )
+ elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
+ self.parseFeatures( child, require=False )
elif child.tag == src.xmlDefs.ELEMENT_DESCRIPTION:
self.description = child.text
# get request
self.requests = request.parseList( self.manager, node )
- def parseFeatures(self, node):
+ def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
- self.require_features.add(child.text.encode("utf-8"))
+ (self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
def dump( self ):
print "\nTEST: %s" % self.name
Modified: CalDAVTester/trunk/src/testsuite.py
===================================================================
--- CalDAVTester/trunk/src/testsuite.py 2011-01-21 18:08:36 UTC (rev 6797)
+++ CalDAVTester/trunk/src/testsuite.py 2011-01-21 21:23:33 UTC (rev 6798)
@@ -32,27 +32,33 @@
self.name = ""
self.ignore = False
self.require_features = set()
+ self.exclude_features = set()
self.tests = []
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 parseXML( self, node ):
self.name = node.get(src.xmlDefs.ATTR_NAME, "")
self.ignore = getYesNoAttributeValue(node, src.xmlDefs.ATTR_IGNORE)
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
- self.parseFeatures( child )
+ self.parseFeatures( child, require=True )
+ elif child.tag == src.xmlDefs.ELEMENT_EXCLUDE_FEATURE:
+ self.parseFeatures( child, require=False )
elif child.tag == src.xmlDefs.ELEMENT_TEST:
t = test(self.manager)
t.parseXML( child )
self.tests.append( t )
- def parseFeatures(self, node):
+ def parseFeatures(self, node, require=True):
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_FEATURE:
- self.require_features.add(child.text.encode("utf-8"))
+ (self.require_features if require else self.exclude_features).add(child.text.encode("utf-8"))
def dump( self ):
print "\nTest Suite:"
Modified: CalDAVTester/trunk/src/xmlDefs.py
===================================================================
--- CalDAVTester/trunk/src/xmlDefs.py 2011-01-21 18:08:36 UTC (rev 6797)
+++ CalDAVTester/trunk/src/xmlDefs.py 2011-01-21 21:23:33 UTC (rev 6798)
@@ -26,6 +26,7 @@
ELEMENT_DATA = "data"
ELEMENT_DESCRIPTION = "description"
ELEMENT_END = "end"
+ELEMENT_EXCLUDE_FEATURE = "exclude-feature"
ELEMENT_FEATURES = "features"
ELEMENT_FEATURE = "feature"
ELEMENT_FILEPATH = "filepath"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110121/d342a832/attachment-0001.html>
More information about the calendarserver-changes
mailing list