[CalendarServer-changes] [6390] CalDAVClientLibrary/trunk/src/client/principal.py

source_changes at macosforge.org source_changes at macosforge.org
Thu Sep 30 08:04:05 PDT 2010


Revision: 6390
          http://trac.macosforge.org/projects/calendarserver/changeset/6390
Author:   cdaboo at apple.com
Date:     2010-09-30 08:04:04 -0700 (Thu, 30 Sep 2010)
Log Message:
-----------
Properly handle properties that are lists but contain only one item.

Modified Paths:
--------------
    CalDAVClientLibrary/trunk/src/client/principal.py

Modified: CalDAVClientLibrary/trunk/src/client/principal.py
===================================================================
--- CalDAVClientLibrary/trunk/src/client/principal.py	2010-09-30 00:16:45 UTC (rev 6389)
+++ CalDAVClientLibrary/trunk/src/client/principal.py	2010-09-30 15:04:04 UTC (rev 6390)
@@ -19,9 +19,7 @@
 from protocol.url import URL
 from protocol.webdav.definitions import davxml
 from protocol.caldav.definitions import headers
-import types
 
-
 class PrincipalCache(object):
     
     def __init__(self):
@@ -42,6 +40,9 @@
 
 principalCache = PrincipalCache()
 
+def make_tuple(item):
+    return item if isinstance(item, tuple) else (item,)
+    
 class CalDAVPrincipal(object):
     
     def __init__(self, session, path):
@@ -125,13 +126,13 @@
             if self.valid:
                 self.displayname = results.get(davxml.displayname, None)
                 self.principalURL = results.get(davxml.principal_URL, None)
-                self.alternateURIs = results.get(davxml.alternate_URI_set, None)
-                self.memberset = results.get(davxml.group_member_set, None)
-                self.memberships = results.get(davxml.group_membership, None)
-                self.homeset = results.get(caldavxml.calendar_home_set, None)
+                self.alternateURIs = make_tuple(results.get(davxml.alternate_URI_set, None))
+                self.memberset = make_tuple(results.get(davxml.group_member_set, None))
+                self.memberships = make_tuple(results.get(davxml.group_membership, None))
+                self.homeset = make_tuple(results.get(caldavxml.calendar_home_set, None))
                 self.outboxURL = results.get(caldavxml.schedule_outbox_URL, None)
                 self.inboxURL = results.get(caldavxml.schedule_inbox_URL, None)
-                self.cuaddrs = results.get(caldavxml.calendar_user_address_set, None)
+                self.cuaddrs = make_tuple(results.get(caldavxml.calendar_user_address_set, None))
 
         # Get proxy resource details if proxy support is available
         if self.session.hasDAVVersion(headers.calendar_proxy) and not self.proxyFor:
@@ -154,7 +155,7 @@
 
     def listCalendars(self, root=None):
         calendars = []
-        home = self.homeset[0] if type(self.homeset) in (types.TupleType,) else self.homeset
+        home = self.homeset[0]
         if not home.path.endswith("/"):
             home.path += "/"
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100930/090d89af/attachment.html>


More information about the calendarserver-changes mailing list