[CalendarServer-changes] [15157] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue Sep 29 04:45:27 PDT 2015


Revision: 15157
          http://trac.calendarserver.org//changeset/15157
Author:   cdaboo at apple.com
Date:     2015-09-29 04:45:27 -0700 (Tue, 29 Sep 2015)
Log Message:
-----------
Allow defaults for filtering of calendar and address data.

Modified Paths:
--------------
    CalDAVTester/trunk/scripts/server/serverinfo-pod.xml
    CalDAVTester/trunk/scripts/server/serverinfo-template.xml
    CalDAVTester/trunk/scripts/server/serverinfo.dtd
    CalDAVTester/trunk/scripts/server/serverinfo.xml
    CalDAVTester/trunk/src/serverinfo.py
    CalDAVTester/trunk/src/xmlDefs.py
    CalDAVTester/trunk/verifiers/addressDataMatch.py
    CalDAVTester/trunk/verifiers/calendarDataMatch.py

Modified: CalDAVTester/trunk/scripts/server/serverinfo-pod.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-pod.xml	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/scripts/server/serverinfo-pod.xml	2015-09-29 11:45:27 UTC (rev 15157)
@@ -720,4 +720,21 @@
 		</repeat>
 
 	</substitutions>
+	
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-DTSTAMP</calendardatafilter>
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-AUTO</calendardatafilter>
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-RESET-PARTSTAT</calendardatafilter>
+    <calendardatafilter>CALSCALE</calendardatafilter>
+    <calendardatafilter>PRODID</calendardatafilter>
+    <calendardatafilter>DTSTAMP</calendardatafilter>
+    <calendardatafilter>CREATED</calendardatafilter>
+    <calendardatafilter>LAST-MODIFIED</calendardatafilter>
+    <calendardatafilter>X-WR-CALNAME</calendardatafilter>
+    <calendardatafilter>CLASS=PUBLIC</calendardatafilter>
+    <calendardatafilter>PRIORITY=0</calendardatafilter>
+    <calendardatafilter>TRANSP=OPAQUE</calendardatafilter>
+    <calendardatafilter>SEQUENCE=0</calendardatafilter>
+
+    <addressdatafilter>PRODID</addressdatafilter>
+    <addressdatafilter>REV</addressdatafilter>
 </serverinfo>

Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml	2015-09-29 11:45:27 UTC (rev 15157)
@@ -853,4 +853,21 @@
 		{overrides}
 
 	</substitutions>
+	
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-DTSTAMP</calendardatafilter>
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-AUTO</calendardatafilter>
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-RESET-PARTSTAT</calendardatafilter>
+    <calendardatafilter>CALSCALE</calendardatafilter>
+    <calendardatafilter>PRODID</calendardatafilter>
+    <calendardatafilter>DTSTAMP</calendardatafilter>
+    <calendardatafilter>CREATED</calendardatafilter>
+    <calendardatafilter>LAST-MODIFIED</calendardatafilter>
+    <calendardatafilter>X-WR-CALNAME</calendardatafilter>
+    <calendardatafilter>CLASS=PUBLIC</calendardatafilter>
+    <calendardatafilter>PRIORITY=0</calendardatafilter>
+    <calendardatafilter>TRANSP=OPAQUE</calendardatafilter>
+    <calendardatafilter>SEQUENCE=0</calendardatafilter>
+
+    <addressdatafilter>PRODID</addressdatafilter>
+    <addressdatafilter>REV</addressdatafilter>
 </serverinfo>

Modified: CalDAVTester/trunk/scripts/server/serverinfo.dtd
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.dtd	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/scripts/server/serverinfo.dtd	2015-09-29 11:45:27 UTC (rev 15157)
@@ -17,7 +17,8 @@
 <!ELEMENT serverinfo (host, nonsslport, sslport, unix?,
 						host2?, nonsslport2?, sslport2?, unix2?,
 						authtype?, waitcount?, waitdelay?, waitsuccess?,
-						features?, substitutions)? >
+						features?, substitutions,
+						calendardatafilter*, addressdatafilter*)? >
 
 	<!ELEMENT host			(#PCDATA)>
 	<!ELEMENT nonsslport	(#PCDATA)>
@@ -39,4 +40,6 @@
 		<!ELEMENT substitution	(key, value)>
 			<!ELEMENT key			(#PCDATA)>
 			<!ELEMENT value			(#PCDATA)>
+	<!ELEMENT calendardatafilter   (#PCDATA)>
+	<!ELEMENT addressdatafilter   (#PCDATA)>
 	

Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/trunk/scripts/server/serverinfo.xml	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml	2015-09-29 11:45:27 UTC (rev 15157)
@@ -852,4 +852,21 @@
 		</substitution>
 
 	</substitutions>
+	
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-DTSTAMP</calendardatafilter>
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-AUTO</calendardatafilter>
+    <calendardatafilter>ATTENDEE:X-CALENDARSERVER-RESET-PARTSTAT</calendardatafilter>
+    <calendardatafilter>CALSCALE</calendardatafilter>
+    <calendardatafilter>PRODID</calendardatafilter>
+    <calendardatafilter>DTSTAMP</calendardatafilter>
+    <calendardatafilter>CREATED</calendardatafilter>
+    <calendardatafilter>LAST-MODIFIED</calendardatafilter>
+    <calendardatafilter>X-WR-CALNAME</calendardatafilter>
+    <calendardatafilter>CLASS=PUBLIC</calendardatafilter>
+    <calendardatafilter>PRIORITY=0</calendardatafilter>
+    <calendardatafilter>TRANSP=OPAQUE</calendardatafilter>
+    <calendardatafilter>SEQUENCE=0</calendardatafilter>
+
+    <addressdatafilter>PRODID</addressdatafilter>
+    <addressdatafilter>REV</addressdatafilter>
 </serverinfo>

Modified: CalDAVTester/trunk/src/serverinfo.py
===================================================================
--- CalDAVTester/trunk/src/serverinfo.py	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/src/serverinfo.py	2015-09-29 11:45:27 UTC (rev 15157)
@@ -50,6 +50,8 @@
         self.waitsuccess = 10
         self.subsdict = {}
         self.extrasubsdict = {}
+        self.calendardatafilters = []
+        self.addressdatafilters = []
 
         # dtnow needs to be fixed to a single date at the start of the tests just in case the tests
         # run over a day boundary.
@@ -193,6 +195,10 @@
                 self.parseFeatures(child)
             elif child.tag == src.xmlDefs.ELEMENT_SUBSTITUTIONS:
                 self.parseSubstitutionsXML(child)
+            elif child.tag == src.xmlDefs.ELEMENT_CALENDARDATAFILTER:
+                self.calendardatafilters.append(child.text.encode("utf-8"))
+            elif child.tag == src.xmlDefs.ELEMENT_ADDRESSDATAFILTER:
+                self.addressdatafilters.append(child.text.encode("utf-8"))
 
         self.updateParams()
 

Modified: CalDAVTester/trunk/src/xmlDefs.py
===================================================================
--- CalDAVTester/trunk/src/xmlDefs.py	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/src/xmlDefs.py	2015-09-29 11:45:27 UTC (rev 15157)
@@ -16,10 +16,12 @@
 
 # XML Elements/Attributes
 
+ELEMENT_ADDRESSDATAFILTER = "addressdatafilter"
 ELEMENT_ARG = "arg"
 ELEMENT_AUTHTYPE = "authtype"
 ELEMENT_BODY = "body"
 ELEMENT_CALDAVTEST = "caldavtest"
+ELEMENT_CALENDARDATAFILTER = "calendardatafilter"
 ELEMENT_CALLBACK = "callback"
 ELEMENT_CLIENTS = "clients"
 ELEMENT_CONTENTTYPE = "content-type"

Modified: CalDAVTester/trunk/verifiers/addressDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/addressDataMatch.py	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/verifiers/addressDataMatch.py	2015-09-29 11:45:27 UTC (rev 15157)
@@ -33,8 +33,7 @@
         filters = args.get("filter", [])
 
         # Always remove these
-        filters.append("PRODID")
-        filters.append("REV")
+        filters.extend(manager.server_info.addressdatafilters)
 
         # status code must be 200, 201, 207
         if response.status not in (200, 201, 207):
@@ -79,8 +78,13 @@
                             if property.hasParameter(parameter):
                                 property.removeParameters(parameter)
                     else:
-                        if property.getName() == filter:
-                            component.removeProperty(property)
+                        if "=" in filter:
+                            filter_name, filter_value = filter.split("=")
+                            if property.getName() == filter_name and property.getValue().getValue() == filter_value:
+                                component.removeProperty(property)
+                        else:
+                            if property.getName() == filter:
+                                component.removeProperty(property)
 
         try:
             format = Card.sFormatJSON if is_json else Card.sFormatText

Modified: CalDAVTester/trunk/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/calendarDataMatch.py	2015-09-29 08:27:20 UTC (rev 15156)
+++ CalDAVTester/trunk/verifiers/calendarDataMatch.py	2015-09-29 11:45:27 UTC (rev 15157)
@@ -39,15 +39,7 @@
         if "EMAIL parameter" not in manager.server_info.features:
             filters.append("ATTENDEE:EMAIL")
             filters.append("ORGANIZER:EMAIL")
-        filters.append("ATTENDEE:X-CALENDARSERVER-DTSTAMP")
-        filters.append("ATTENDEE:X-CALENDARSERVER-AUTO")
-        filters.append("ATTENDEE:X-CALENDARSERVER-RESET-PARTSTAT")
-        filters.append("CALSCALE")
-        filters.append("PRODID")
-        filters.append("DTSTAMP")
-        filters.append("CREATED")
-        filters.append("LAST-MODIFIED")
-        filters.append("X-WR-CALNAME")
+        filters.extend(manager.server_info.calendardatafilters)
 
         for afilter in tuple(filters):
             if afilter[0] == "!" and afilter[1:] in filters:
@@ -99,6 +91,10 @@
             for subcomponent in component.getComponents():
                 removePropertiesParameters(subcomponent)
 
+            if component.getType() == "VEVENT":
+                if component.hasEnd():
+                    component.editTimingStartDuration(component.getStart(), component.getEnd() - component.getStart())
+
             allProps = []
             for properties in component.getProperties().itervalues():
                 allProps.extend(properties)
@@ -115,8 +111,13 @@
                             if property.hasParameter(parameter):
                                 property.removeParameters(parameter)
                     else:
-                        if property.getName() == filter:
-                            component.removeProperty(property)
+                        if "=" in filter:
+                            filter_name, filter_value = filter.split("=")
+                            if property.getName() == filter_name and property.getValue().getValue() == filter_value:
+                                component.removeProperty(property)
+                        else:
+                            if property.getName() == filter:
+                                component.removeProperty(property)
 
         def reconcileRecurrenceOverrides(calendar1, calendar2):
             """
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20150929/5bb4f0dc/attachment-0001.html>


More information about the calendarserver-changes mailing list