[CalendarServer-changes] [5007] CalDAVTester/trunk/verifiers/calendarDataMatch.py

source_changes at macosforge.org source_changes at macosforge.org
Mon Feb 1 17:41:26 PST 2010


Revision: 5007
          http://trac.macosforge.org/projects/calendarserver/changeset/5007
Author:   cdaboo at apple.com
Date:     2010-02-01 17:41:26 -0800 (Mon, 01 Feb 2010)
Log Message:
-----------
Better calendar data normalization for tests against other servers.

Modified Paths:
--------------
    CalDAVTester/trunk/verifiers/calendarDataMatch.py

Modified: CalDAVTester/trunk/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/trunk/verifiers/calendarDataMatch.py	2010-02-02 01:25:32 UTC (rev 5006)
+++ CalDAVTester/trunk/verifiers/calendarDataMatch.py	2010-02-02 01:41:26 UTC (rev 5007)
@@ -18,6 +18,7 @@
 from vobject.base import Component
 from difflib import unified_diff
 import StringIO
+from vobject.icalendar import RecurringComponent, TimezoneComponent
 
 """
 Verifier that checks the response body for an exact match to data in a file.
@@ -30,6 +31,14 @@
         files = args.get("filepath", [])
         filters = args.get("filter", [])
         
+        if "EMAIL parameter" not in manager.server_info.features:
+            filters.append("ATTENDEE:EMAIL") 
+            filters.append("ORGANIZER:EMAIL")
+        filters.append("CALSCALE")
+        filters.append("PRODID")
+        filters.append("CREATED")
+        filters.append("LAST-MODIFIED")
+ 
         # status code must be 200, 207
         if response.status not in (200,207):
             return False, "        HTTP Status Code Wrong: %d" % (response.status,)
@@ -81,15 +90,29 @@
                             if item.name == filter:
                                 component.remove(item)
 
+        def normalizeRRULE(calobj):
+            
+            for component in calobj.getChildren():
+                if isinstance(component, RecurringComponent):
+                    rruleset = component.rruleset
+                    if rruleset:
+                        component.rruleset = rruleset
+                elif isinstance(component, TimezoneComponent):
+                    tzinfo = component.tzinfo
+                    if tzinfo:
+                        component.tzinfo = tzinfo
+
         s = StringIO.StringIO(respdata)
         try:
             resp_calendar = readOne(s)
             removePropertiesParameters(resp_calendar)
+            normalizeRRULE(resp_calendar)
             respdata = resp_calendar.serialize()
             
             s = StringIO.StringIO(data)
             data_calendar = readOne(s)
             removePropertiesParameters(data_calendar)
+            normalizeRRULE(data_calendar)
             data = data_calendar.serialize()
             
             result = respdata == data
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100201/fbd851cf/attachment.html>


More information about the calendarserver-changes mailing list