[CalendarServer-changes] [5003] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Feb 1 15:03:10 PST 2010


Revision: 5003
          http://trac.macosforge.org/projects/calendarserver/changeset/5003
Author:   cdaboo at apple.com
Date:     2010-02-01 15:03:09 -0800 (Mon, 01 Feb 2010)
Log Message:
-----------
Use required-feature support at the individual <test> levels.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
    CalDAVTester/trunk/src/caldavtest.py
    CalDAVTester/trunk/src/test.py

Modified: CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd	2010-02-01 23:01:49 UTC (rev 5002)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd	2010-02-01 23:03:09 UTC (rev 5003)
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2006-2009 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2010 Apple Inc. All rights reserved.
 
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
@@ -59,7 +59,7 @@
 		<!ATTLIST test-suite name CDATA #REQUIRED
 							ignore (yes|no) "no">
 	
-		<!ELEMENT test (description?, request+)>
+		<!ELEMENT test (require-feature?, description?, request+)>
 			<!ATTLIST test name CDATA #REQUIRED
 						  count CDATA "1"
 						  stats (yes|no) "no"

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2010-02-01 23:01:49 UTC (rev 5002)
+++ CalDAVTester/trunk/src/caldavtest.py	2010-02-01 23:03:09 UTC (rev 5003)
@@ -104,7 +104,7 @@
             ignored = len(suite.tests)
         elif len(suite.missingFeatures()) != 0:
             self.manager.log(manager.LOG_HIGH, "[IGNORED]")
-            self.manager.log(manager.LOG_HIGH, "      Missing features: %s" % (", ".join(sorted(self.missingFeatures())),))
+            self.manager.log(manager.LOG_HIGH, "      Missing features: %s" % (", ".join(sorted(suite.missingFeatures())),))
             ignored = len(suite.tests)
         else:
             self.manager.log(manager.LOG_HIGH, "")
@@ -132,6 +132,10 @@
         if test.ignore:
             self.manager.log(manager.LOG_HIGH, "[IGNORED]")
             return "i"
+        elif len(test.missingFeatures()) != 0:
+            self.manager.log(manager.LOG_HIGH, "[IGNORED]")
+            self.manager.log(manager.LOG_HIGH, "      Missing features: %s" % (", ".join(sorted(test.missingFeatures())),))
+            return "i"
         else:
             result = False
             resulttxt = ""

Modified: CalDAVTester/trunk/src/test.py
===================================================================
--- CalDAVTester/trunk/src/test.py	2010-02-01 23:01:49 UTC (rev 5002)
+++ CalDAVTester/trunk/src/test.py	2010-02-01 23:03:09 UTC (rev 5003)
@@ -27,7 +27,7 @@
     be run more than once, and timing information gathered and averaged across
     all runs.
     """
-    __slots__  = ['manager', 'name', 'details', 'count', 'stats', 'ignore', 'description', 'requests']
+    __slots__  = ['manager', 'name', 'details', 'count', 'stats', 'ignore', 'require_features', 'description', 'requests']
     
     def __init__( self, manager ):
         self.manager = manager
@@ -36,9 +36,13 @@
         self.count = 1
         self.stats = False
         self.ignore = False
+        self.require_features = set()
         self.description = ""
         self.requests = []
     
+    def missingFeatures(self):
+        return self.require_features - self.manager.server_info.features
+
     def parseXML( self, node ):
         self.name = node.getAttribute( src.xmlDefs.ATTR_NAME )
         self.details = node.getAttribute( src.xmlDefs.ATTR_DETAILS ) == src.xmlDefs.ATTR_VALUE_YES
@@ -51,12 +55,19 @@
         self.ignore = node.getAttribute( src.xmlDefs.ATTR_IGNORE ) == src.xmlDefs.ATTR_VALUE_YES
 
         for child in node._get_childNodes():
-            if child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
+            if child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+                self.parseFeatures( child )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
                 self.description = child.firstChild.data
 
         # get request
         self.requests = request.parseList( self.manager, node )
 
+    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 dump( self ):
         print "\nTEST: %s" % self.name
         print "    description: %s" % self.description
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100201/4045d17d/attachment-0001.html>


More information about the calendarserver-changes mailing list