[CalendarServer-changes] [4470] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Jul 22 09:37:16 PDT 2009


Revision: 4470
          http://trac.macosforge.org/projects/calendarserver/changeset/4470
Author:   cdaboo at apple.com
Date:     2009-07-22 09:37:15 -0700 (Wed, 22 Jul 2009)
Log Message:
-----------
Merged conditional testing branch.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.dtd
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/scripts/server/sslserverinfo.xml
    CalDAVTester/trunk/scripts/tests/aclreports.xml
    CalDAVTester/trunk/scripts/tests/availability.xml
    CalDAVTester/trunk/scripts/tests/caldavtest.dtd
    CalDAVTester/trunk/scripts/tests/calendaruserproxy.xml
    CalDAVTester/trunk/scripts/tests/ctag.xml
    CalDAVTester/trunk/scripts/tests/current-user-principal.xml
    CalDAVTester/trunk/scripts/tests/dropbox.xml
    CalDAVTester/trunk/scripts/tests/expandproperty.xml
    CalDAVTester/trunk/scripts/tests/implicitacls.xml
    CalDAVTester/trunk/scripts/tests/implicitallday.xml
    CalDAVTester/trunk/scripts/tests/implicitauto1.xml
    CalDAVTester/trunk/scripts/tests/implicitauto2.xml
    CalDAVTester/trunk/scripts/tests/implicitauto3.xml
    CalDAVTester/trunk/scripts/tests/implicitauto4.xml
    CalDAVTester/trunk/scripts/tests/implicitauto5.xml
    CalDAVTester/trunk/scripts/tests/implicitauto6.xml
    CalDAVTester/trunk/scripts/tests/implicitauto7.xml
    CalDAVTester/trunk/scripts/tests/implicitcalendartransp.xml
    CalDAVTester/trunk/scripts/tests/implicitcancels.xml
    CalDAVTester/trunk/scripts/tests/implicitcompatibility.xml
    CalDAVTester/trunk/scripts/tests/implicitcopymove.xml
    CalDAVTester/trunk/scripts/tests/implicitdefaultcalendar.xml
    CalDAVTester/trunk/scripts/tests/implicitdeletecalendar.xml
    CalDAVTester/trunk/scripts/tests/implicitdropbox.xml
    CalDAVTester/trunk/scripts/tests/impliciterrors.xml
    CalDAVTester/trunk/scripts/tests/implicitoptions.xml
    CalDAVTester/trunk/scripts/tests/implicitprivateevents.xml
    CalDAVTester/trunk/scripts/tests/implicitproxy.xml
    CalDAVTester/trunk/scripts/tests/implicitrecur1.xml
    CalDAVTester/trunk/scripts/tests/implicitscenario1.xml
    CalDAVTester/trunk/scripts/tests/implicitscenario2.xml
    CalDAVTester/trunk/scripts/tests/implicitscheduleagent.xml
    CalDAVTester/trunk/scripts/tests/implicitschedulechanges.xml
    CalDAVTester/trunk/scripts/tests/implicitscheduletag.xml
    CalDAVTester/trunk/scripts/tests/implicitsecurity.xml
    CalDAVTester/trunk/scripts/tests/privatecomments.xml
    CalDAVTester/trunk/scripts/tests/privateevents.xml
    CalDAVTester/trunk/scripts/tests/proxyauthz.xml
    CalDAVTester/trunk/scripts/tests/quota.xml
    CalDAVTester/trunk/scripts/tests/scheduleimplicit-compatability.xml
    CalDAVTester/trunk/scripts/tests/schedulepostmaskuid.xml
    CalDAVTester/trunk/scripts/tests/timezoneservice.xml
    CalDAVTester/trunk/src/caldavtest.py
    CalDAVTester/trunk/src/manager.py
    CalDAVTester/trunk/src/serverinfo.py
    CalDAVTester/trunk/src/testsuite.py
    CalDAVTester/trunk/src/xmlDefs.py

Property Changed:
----------------
    CalDAVTester/trunk/
    CalDAVTester/trunk/scripts/tests/implicitoptions.xml


Property changes on: CalDAVTester/trunk
___________________________________________________________________
Added: svn:ignore
   + .project
.pydevproject

Added: svn:mergeinfo
   + /CalDAVTester/branches/users/cdaboo/attendee-comments-2887:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148:3149-3163
/CalDAVTester/branches/users/cdaboo/conditional-4466:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574:3575-3581
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533:3534-3558
/CalDAVTester/trunk:2451,3035,3142,3165,3190,3405,3432,3858,3940

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -22,6 +22,25 @@
 	<host>%(hostname)s</host>
 	<port>8008</port>
 	<authtype>%(authtype)s</authtype>
+
+	<features>
+		<feature>auto-accept</feature>					<!-- Auto-accept for rooms & locations -->
+		<feature>ctag</feature>							<!-- ctag extension -->
+		<feature>current-user-principal</feature>		<!-- current-user-principal extension -->
+		<feature>dropbox</feature>						<!-- dropbox extension -->
+		<feature>extended-principal-search</feature>	<!-- Extended principal-property-search REPORT extension -->
+		<feature>expand-property</feature>				<!-- Expand property REPORT -->
+		<feature>implicit-scheduling</feature>			<!-- CalDAV scheduling - implicit -->
+		<feature>maskuid</feature>						<!-- maskuid extension -->
+		<feature>private-comments</feature>				<!-- private-comments extension -->
+		<feature>private-events</feature>				<!-- private-events extension -->
+		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->
+		<feature>proxy-authz</feature>					<!-- sudo user extension -->
+		<feature>quota</feature>						<!-- WebDAV QUOTA -->
+		<feature>timezone-service</feature>				<!-- Timezone service extension -->
+		<feature>vavailability</feature>				<!-- VAVAILABILITY on inbox -->
+	</features>
+
 	<substitutions>
 		<substitution>
 			<key>$host:</key>

Modified: CalDAVTester/trunk/scripts/server/serverinfo.dtd
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.dtd	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/server/serverinfo.dtd	2009-07-22 16:37:15 UTC (rev 4470)
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2009 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.
@@ -14,12 +14,14 @@
  limitations under the License.
  -->
 
-<!ELEMENT serverinfo (host, port, authtype?, ssl?, substitutions)? >
+<!ELEMENT serverinfo (host, port, authtype?, ssl?, features?, substitutions)? >
 
 	<!ELEMENT host			(#PCDATA)>
 	<!ELEMENT port			(#PCDATA)>
 	<!ELEMENT authtype		(#PCDATA)>
 	<!ELEMENT ssl			EMPTY>
+	<!ELEMENT features      feature*>
+		<!ELEMENT feature   (#PCDATA)>
 	<!ELEMENT substitutions	(substitution|repeat)*>
 		<!ELEMENT repeat	(substitution+)>
     		<!ATTLIST repeat count CDATA "1">

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -3,7 +3,7 @@
 <!DOCTYPE serverinfo SYSTEM "serverinfo.dtd">
 
 <!--
- Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2009 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.
@@ -22,6 +22,25 @@
 	<host>localhost</host>
 	<port>8008</port>
 	<authtype>basic</authtype>
+
+	<features>
+		<feature>auto-accept</feature>					<!-- Auto-accept for rooms & locations -->
+		<feature>ctag</feature>							<!-- ctag extension -->
+		<feature>current-user-principal</feature>		<!-- current-user-principal extension -->
+		<feature>dropbox</feature>						<!-- dropbox extension -->
+		<feature>extended-principal-search</feature>	<!-- Extended principal-property-search REPORT extension -->
+		<feature>expand-property</feature>				<!-- Expand property REPORT -->
+		<feature>implicit-scheduling</feature>			<!-- CalDAV scheduling - implicit -->
+		<feature>maskuid</feature>						<!-- maskuid extension -->
+		<feature>private-comments</feature>				<!-- private-comments extension -->
+		<feature>private-events</feature>				<!-- private-events extension -->
+		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->
+		<feature>proxy-authz</feature>					<!-- sudo user extension -->
+		<feature>quota</feature>						<!-- WebDAV QUOTA -->
+		<feature>timezone-service</feature>				<!-- Timezone service extension -->
+		<feature>vavailability</feature>				<!-- VAVAILABILITY on inbox -->
+	</features>
+
 	<substitutions>
 		<substitution>
 			<key>$host:</key>

Modified: CalDAVTester/trunk/scripts/server/sslserverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/sslserverinfo.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/server/sslserverinfo.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -22,6 +22,26 @@
 	<host>localhost</host>
 	<port>8443</port>
 	<authtype>basic</authtype>
+	<ssl/>
+
+	<features>
+		<feature>auto-accept</feature>					<!-- Auto-accept for rooms & locations -->
+		<feature>ctag</feature>							<!-- ctag extension -->
+		<feature>current-user-principal</feature>		<!-- current-user-principal extension -->
+		<feature>dropbox</feature>						<!-- dropbox extension -->
+		<feature>extended-principal-search</feature>	<!-- Extended principal-property-search REPORT extension -->
+		<feature>expand-property</feature>				<!-- Expand property REPORT -->
+		<feature>implicit-scheduling</feature>			<!-- CalDAV scheduling - implicit -->
+		<feature>maskuid</feature>						<!-- maskuid extension -->
+		<feature>private-comments</feature>				<!-- private-comments extension -->
+		<feature>private-events</feature>				<!-- private-events extension -->
+		<feature>proxy</feature>						<!-- calendar-user-proxy extension -->
+		<feature>proxy-authz</feature>					<!-- sudo user extension -->
+		<feature>quota</feature>						<!-- WebDAV QUOTA -->
+		<feature>timezone-service</feature>				<!-- Timezone service extension -->
+		<feature>vavailability</feature>				<!-- VAVAILABILITY on inbox -->
+	</features>
+
 	<substitutions>
 		<substitution>
 			<key>$host:</key>

Modified: CalDAVTester/trunk/scripts/tests/aclreports.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/aclreports.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/aclreports.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -500,7 +500,14 @@
 				</verify>
 			</request>
 		</test>
-		<test name='7' ignore='no'>
+	</test-suite>
+
+	<test-suite name='Extended principal-property-search REPORT' ignore='no'>
+		<require-feature>
+			<feature>extended-principal-search</feature>
+		</require-feature>
+
+		<test name='1' ignore='no'>
 			<description>Valid INDIVIDUAL first-name AND last-name search report</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -522,7 +529,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='8' ignore='no'>
+		<test name='2' ignore='no'>
 			<description>Valid INDIVIDUAL first-name OR last-name search report</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -545,7 +552,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='9' ignore='no'>
+		<test name='3' ignore='no'>
 			<description>Valid ROOM displayname search report</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -567,7 +574,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='10' ignore='no'>
+		<test name='4' ignore='no'>
 			<description>Valid RESOURCE displayname search report</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -589,7 +596,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='11' ignore='no'>
+		<test name='5' ignore='no'>
 			<description>Valid INDIVIDUAL first-name OR last-name search report - limit 1</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -622,7 +629,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='12' ignore='no'>
+		<test name='6' ignore='no'>
 			<description>Invalid INDIVIDUAL first-name OR last-name search report - limit bogus</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -640,7 +647,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='13' ignore='no'>
+		<test name='7' ignore='no'>
 			<description>Invalid INDIVIDUAL first-name OR last-name search report - limit bogus</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -658,7 +665,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='14' ignore='no'>
+		<test name='8' ignore='no'>
 			<description>Invalid search report - test attribute bogus</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -676,7 +683,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='15' ignore='no'>
+		<test name='9' ignore='no'>
 			<description>Invalid search report - type attribute bogus</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -694,7 +701,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='16' ignore='no'>
+		<test name='10' ignore='no'>
 			<description>Invalid search report - caseless attribute bogus</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -712,7 +719,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='17' ignore='no'>
+		<test name='11' ignore='no'>
 			<description>Invalid search report - match-type attribute bogus</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -730,7 +737,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='18' ignore='no'>
+		<test name='12' ignore='no'>
 			<description>Valid INDIVIDUAL first-name search report - limit 5</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -755,7 +762,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='19' ignore='no'>
+		<test name='13' ignore='no'>
 			<description>"equals" calendar-user-address-set REPORT</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>
@@ -777,7 +784,7 @@
 				</verify>
 			</request>
 		</test>
-		<test name='20' ignore='no'>
+		<test name='14' ignore='no'>
 			<description>Invalid CUA in calendar-user-address-set REPORT</description>
 			<request print-response='no' user='$useradmin:' pswd='$pswdadmin:'>
 				<method>REPORT</method>

Modified: CalDAVTester/trunk/scripts/tests/availability.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/availability.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/availability.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test PUT method in CalDAV</description>
 
+	<require-feature>
+		<feature>vavailability</feature>
+	</require-feature>
+
 	<start>
 		<!-- Commented out as we do not support VAVAILABILITY components
 		     stored directly in calendars.

Modified: CalDAVTester/trunk/scripts/tests/caldavtest.dtd
===================================================================
--- CalDAVTester/trunk/scripts/tests/caldavtest.dtd	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/caldavtest.dtd	2009-07-22 16:37:15 UTC (rev 4470)
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+ Copyright (c) 2006-2009 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.
@@ -14,11 +14,14 @@
  limitations under the License.
  -->
 
-<!ELEMENT caldavtest (description?, start, test-suite*, end) >
+<!ELEMENT caldavtest (description?, require-feature?, start, test-suite*, end) >
 	<!ATTLIST caldavtest ignore-all (yes|no) "no">
 
 	<!ELEMENT description (#PCDATA)>
 
+	<!ELEMENT require-feature feature*>
+		<!ELEMENT feature (#PCDATA)>
+
 	<!ELEMENT start (request*)>
 	<!ELEMENT end (request*)>
 
@@ -50,7 +53,7 @@
 			<!ELEMENT property (#PCDATA)>
 			<!ELEMENT variable (#PCDATA)>
 
-	<!ELEMENT test-suite (test*)>
+	<!ELEMENT test-suite (require-feature?, test*)>
 		<!ATTLIST test-suite name CDATA #REQUIRED
 							ignore (yes|no) "no">
 	

Modified: CalDAVTester/trunk/scripts/tests/calendaruserproxy.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/calendaruserproxy.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/calendaruserproxy.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test proxy user features</description>
 
+	<require-feature>
+		<feature>proxy</feature>
+	</require-feature>
+
 	<start>
 		<request end-delete="yes">
 			<method>PUT</method>

Modified: CalDAVTester/trunk/scripts/tests/ctag.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/ctag.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/ctag.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test the collection entity tag behavior on calendar collections</description>
 
+	<require-feature>
+		<feature>ctag</feature>
+	</require-feature>
+
 	<start>
 		<request end-delete="yes">
 			<method>PUT</method>

Modified: CalDAVTester/trunk/scripts/tests/current-user-principal.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/current-user-principal.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/current-user-principal.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test DAV:current-user-principal support</description>
 
+	<require-feature>
+		<feature>current-user-principal</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='Check for the property on /' ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/dropbox.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/dropbox.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/dropbox.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test drop box features</description>
 
+	<require-feature>
+		<feature>dropbox</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='Principal properties'>

Modified: CalDAVTester/trunk/scripts/tests/expandproperty.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/expandproperty.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/expandproperty.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test expand-property REPORT</description>
 
+	<require-feature>
+		<feature>expand-property</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='Basic REPORT' ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/implicitacls.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitacls.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitacls.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test new ACLs in CalDAV scheduling</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='Default Inbox/Outbox privileges' ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/implicitallday.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitallday.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitallday.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitauto1.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitauto1.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitauto1.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for auto-accept location, not recurring</description>
 
+	<require-feature>
+		<feature>auto-accept</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitauto2.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitauto2.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitauto2.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for auto-accept location, not recurring</description>
 
+	<require-feature>
+		<feature>auto-accept</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request>
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitauto3.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitauto3.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitauto3.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for auto-accept location, not recurring</description>
 
+	<require-feature>
+		<feature>auto-accept</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request>
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitauto4.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitauto4.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitauto4.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for auto-accept location</description>
 
+	<require-feature>
+		<feature>auto-accept</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request>
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitauto5.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitauto5.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitauto5.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for auto-accept location partial replies</description>
 
+	<require-feature>
+		<feature>auto-accept</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request>
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitauto6.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitauto6.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitauto6.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for auto-accept location partial replies</description>
 
+	<require-feature>
+		<feature>auto-accept</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request>
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitauto7.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitauto7.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitauto7.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for auto-accept location, not recurring</description>
 
+	<require-feature>
+		<feature>auto-accept</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitcalendartransp.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitcalendartransp.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitcalendartransp.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test default calendar behavior in CalDAV</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='New Calendar' ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/implicitcancels.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitcancels.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitcancels.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitcompatibility.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitcompatibility.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitcompatibility.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test the Schedule-Tag behavior</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitcopymove.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitcopymove.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitcopymove.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest ignore-all="yes">
 	<description>Test COPY/MOVE behavior with implicit scheduling (also some PUT restrictions)</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitdefaultcalendar.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitdefaultcalendar.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitdefaultcalendar.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test default calendar behavior in CalDAV</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request end-delete="yes">
 			<method>MKCALENDAR</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitdeletecalendar.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitdeletecalendar.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitdeletecalendar.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitdropbox.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitdropbox.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitdropbox.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling with dropbox</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/impliciterrors.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/impliciterrors.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/impliciterrors.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling errors</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='Allowed Organizers' ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/implicitoptions.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitoptions.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitoptions.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling options in CalDAV</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='OPTIONS header' ignore='no'>


Property changes on: CalDAVTester/trunk/scripts/tests/implicitoptions.xml
___________________________________________________________________
Modified: svn:mergeinfo
   - /CalDAVTester/branches/users/cdaboo/better-proxy-3148/scripts/tests/implicitoptions.xml:3149-3163
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/scripts/tests/implicitoptions.xml:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/scripts/tests/implicitoptions.xml:3534-3558
   + /CalDAVTester/branches/users/cdaboo/better-proxy-3148/scripts/tests/implicitoptions.xml:3149-3163
/CalDAVTester/branches/users/cdaboo/conditional-4466/scripts/tests/implicitoptions.xml:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/scripts/tests/implicitoptions.xml:2949-2989
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/scripts/tests/implicitoptions.xml:3534-3558

Modified: CalDAVTester/trunk/scripts/tests/implicitprivateevents.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitprivateevents.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitprivateevents.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling with private events</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitproxy.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitproxy.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitproxy.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling done by proxies</description>
 
+	<require-feature>
+		<feature>proxy</feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitrecur1.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitrecur1.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitrecur1.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitscenario1.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitscenario1.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitscenario1.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitscenario2.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitscenario2.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitscenario2.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitscheduleagent.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitscheduleagent.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitscheduleagent.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling using SCHEDULE-AGENT parameter</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitschedulechanges.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitschedulechanges.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitschedulechanges.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitscheduletag.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitscheduletag.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitscheduletag.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test the Schedule-Tag behavior</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/implicitsecurity.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/implicitsecurity.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/implicitsecurity.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test security of implicit CalDAV scheduling</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/privatecomments.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/privatecomments.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/privatecomments.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,11 @@
 <caldavtest>
 	<description>Test implicit scheduling for one attendee, not recurring</description>
 
+	<require-feature>
+		<feature>implicit-scheduling</feature>
+		<feature>private-comments</feature>
+	</require-feature>
+
 	<start>
 		<request user="$userid1:" pswd="$pswd1:">
 			<method>GET</method>

Modified: CalDAVTester/trunk/scripts/tests/privateevents.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/privateevents.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/privateevents.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test private events features</description>
 
+	<require-feature>
+		<feature>private-events</feature>
+	</require-feature>
+
 	<start>
 		<request end-delete="yes">
 			<method>PUT</method>

Modified: CalDAVTester/trunk/scripts/tests/proxyauthz.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/proxyauthz.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/proxyauthz.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test proxy authorization on the server</description>
 
+	<require-feature>
+		<feature>proxy-authz</feature>
+	</require-feature>
+
 	<start>
 		<request end-delete="yes">
 			<method>PUT</method>

Modified: CalDAVTester/trunk/scripts/tests/quota.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/quota.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/quota.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest ignore-all="no">
 	<description>Test Quota support on the server</description>
 
+	<require-feature>
+		<feature>quota</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='Quota enabled by default on calendar home and below only' ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/scheduleimplicit-compatability.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/scheduleimplicit-compatability.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/scheduleimplicit-compatability.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test implicit scheduling compatibility with old-style POST scheduling</description>
 
+	<require-feature>
+		<feature>implicit</feature>
+	</require-feature>
+
 	<start>
 		<request>
 			<method>DELETEALL</method>

Modified: CalDAVTester/trunk/scripts/tests/schedulepostmaskuid.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/schedulepostmaskuid.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/schedulepostmaskuid.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test normal POST operations in CalDAV</description>
 
+	<require-feature>
+		<feature>maskuid</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name="Initialize state" ignore='no'>

Modified: CalDAVTester/trunk/scripts/tests/timezoneservice.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/timezoneservice.xml	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/scripts/tests/timezoneservice.xml	2009-07-22 16:37:15 UTC (rev 4470)
@@ -21,6 +21,10 @@
 <caldavtest>
 	<description>Test timezone service</description>
 
+	<require-feature>
+		<feature>timezone-service</feature>
+	</require-feature>
+
 	<start/>
 	
 	<test-suite name='Non-query GET/POST'>

Modified: CalDAVTester/trunk/src/caldavtest.py
===================================================================
--- CalDAVTester/trunk/src/caldavtest.py	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/src/caldavtest.py	2009-07-22 16:37:15 UTC (rev 4470)
@@ -39,12 +39,12 @@
 STATUSTXT_WIDTH    = 60
 
 class caldavtest(object):
-    __slots__  = ['manager', 'name', 'description', 'ignore_all', 'start_requests', 'end_requests', 'end_deletes', 'suites', 'grabbedlocation']
     
     def __init__( self, manager, name ):
         self.manager = manager
         self.name = name
         self.description = ""
+        self.require_features = set()
         self.ignore_all = False
         self.start_requests = []
         self.end_requests = []
@@ -52,7 +52,15 @@
         self.suites = []
         self.grabbedlocation = None
         
+    def missingFeatures(self):
+        return self.require_features - self.manager.server_info.features
+
     def run( self ):
+        if len(self.missingFeatures()) != 0:
+            self.manager.log(manager.LOG_HIGH, "----- Ignoring CalDAV Tests from \"%s\"... -----" % self.name, before=1)
+            self.manager.log(manager.LOG_HIGH, "      Missing features: %s" % (", ".join(sorted(self.missingFeatures())),))
+            return 0, 0, 1
+            
         try:
             self.manager.log(manager.LOG_HIGH, "----- Running CalDAV Tests from \"%s\"... -----" % self.name, before=1)
             result = self.dorequests( "Executing Start Requests...", self.start_requests, False, True )
@@ -94,6 +102,10 @@
         if suite.ignore:
             self.manager.log(manager.LOG_HIGH, "[IGNORED]")
             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())),))
+            ignored = len(suite.tests)
         else:
             self.manager.log(manager.LOG_HIGH, "")
             if self.manager.memUsage:
@@ -453,6 +465,8 @@
         for child in node._get_childNodes():
             if child._get_localName() == src.xmlDefs.ELEMENT_DESCRIPTION:
                 self.description = child.firstChild.data
+            elif child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+                self.parseFeatures( child )
             elif child._get_localName() == src.xmlDefs.ELEMENT_START:
                 self.start_requests = request.parseList( self.manager, child )
             elif child._get_localName() == src.xmlDefs.ELEMENT_TESTSUITE:
@@ -462,6 +476,11 @@
             elif child._get_localName() == src.xmlDefs.ELEMENT_END:
                 self.end_requests = request.parseList( self.manager, child )
     
+    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 extractProperty(self, propertyname, respdata):
 
         try:

Modified: CalDAVTester/trunk/src/manager.py
===================================================================
--- CalDAVTester/trunk/src/manager.py	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/src/manager.py	2009-07-22 16:37:15 UTC (rev 4470)
@@ -39,8 +39,6 @@
     """
     Main class that runs test suites defined in an XML config file.
     """
-    __slots__  = ['server_info', 'populator', 'depopulate', 'tests', 'textMode', 'pid', 'memUsage', 'logLevel', 
-                  'logFile', 'digestCache']
 
     LOG_NONE    = 0
     LOG_ERROR   = 1

Modified: CalDAVTester/trunk/src/serverinfo.py
===================================================================
--- CalDAVTester/trunk/src/serverinfo.py	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/src/serverinfo.py	2009-07-22 16:37:15 UTC (rev 4470)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2009 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.
@@ -24,14 +24,13 @@
     """
     Maintains information about the server being targetted.
     """
-    __slots__  = ['host', 'port', 'authtype', 'ssl', 'calendarpath', 'user', 'pswd', 'subsdict', 'extrasubsdict',]
 
-
     def __init__( self ):
         self.host = ""
         self.port = 80
         self.authtype = "basic"
         self.ssl = False
+        self.features = set()
         self.user = ""
         self.pswd = ""
         self.subsdict = {}
@@ -85,11 +84,18 @@
                 self.authtype = child.firstChild.data.encode("utf-8")
             elif child._get_localName() == src.xmlDefs.ELEMENT_SSL:
                 self.ssl = True
+            elif child._get_localName() == src.xmlDefs.ELEMENT_FEATURES:
+                self.parseFeatures(child)
             elif child._get_localName() == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
                 self.parseSubstitutionsXML(child)
    
         self.updateParams()
 
+    def parseFeatures(self, node):
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_FEATURE:
+                self.features.add(child.firstChild.data.encode("utf-8"))
+
     def updateParams(self):         
         # Now cache some useful substitutions
         if "$userid1:" not in self.subsdict:

Modified: CalDAVTester/trunk/src/testsuite.py
===================================================================
--- CalDAVTester/trunk/src/testsuite.py	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/src/testsuite.py	2009-07-22 16:37:15 UTC (rev 4470)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2007 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2009 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.
@@ -25,24 +25,34 @@
     """
     Maintains a list of tests to run as part of a 'suite'.
     """
-    __slots__  = ['manager', 'name', 'ignore', 'tests']
     
     def __init__( self, manager ):
         self.manager = manager
         self.name = ""
         self.ignore = False
+        self.require_features = set()
         self.tests = []
     
+    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.ignore = node.getAttribute( src.xmlDefs.ATTR_IGNORE ) == src.xmlDefs.ATTR_VALUE_YES
 
-        test_nodes = node.getElementsByTagName( src.xmlDefs.ELEMENT_TEST )
-        for child in test_nodes:
-            t = test(self.manager)
-            t.parseXML( child )
-            self.tests.append( t )
+        for child in node._get_childNodes():
+            if child._get_localName() == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
+                self.parseFeatures( child )
+            elif child._get_localName() == src.xmlDefs.ELEMENT_TEST:
+                t = test(self.manager)
+                t.parseXML( child )
+                self.tests.append( t )
 
+    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 Suite:"
         print "    name: %s" % self.name

Modified: CalDAVTester/trunk/src/xmlDefs.py
===================================================================
--- CalDAVTester/trunk/src/xmlDefs.py	2009-07-22 14:47:20 UTC (rev 4469)
+++ CalDAVTester/trunk/src/xmlDefs.py	2009-07-22 16:37:15 UTC (rev 4470)
@@ -1,5 +1,5 @@
 ##
-# Copyright (c) 2006-2008 Apple Inc. All rights reserved.
+# Copyright (c) 2006-2009 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.
@@ -29,6 +29,8 @@
 ELEMENT_DATASOURCE = "datasource"
 ELEMENT_DESCRIPTION = "description"
 ELEMENT_END = "end"
+ELEMENT_FEATURES = "features"
+ELEMENT_FEATURE = "feature"
 ELEMENT_FILEPATH = "filepath"
 ELEMENT_GRABHEADER = "grabheader"
 ELEMENT_GRABPROPERTY = "grabproperty"
@@ -50,6 +52,7 @@
 ELEMENT_PROPERTY = "property"
 ELEMENT_REPEAT = "repeat"
 ELEMENT_REQUEST = "request"
+ELEMENT_REQUIRE_FEATURE = "require-feature"
 ELEMENT_RUNS = "runs"
 ELEMENT_RURI = "ruri"
 ELEMENT_SERVERINFO = "serverinfo"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090722/2c60180f/attachment-0001.html>


More information about the calendarserver-changes mailing list