[CalendarServer-changes] [7055] CalendarServer/trunk/twistedcaldav/directory
source_changes at macosforge.org
source_changes at macosforge.org
Sat Feb 19 15:46:48 PST 2011
Revision: 7055
http://trac.macosforge.org/projects/calendarserver/changeset/7055
Author: sagen at apple.com
Date: 2011-02-19 15:46:45 -0800 (Sat, 19 Feb 2011)
Log Message:
-----------
If not enabledForCalendaring, CUA-set and CalendarHomeURLs will be empty
If not enabledForAddressBooks, AddressBookHomeURLs will be empty
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/principal.py
CalendarServer/trunk/twistedcaldav/directory/test/test_principal.py
Modified: CalendarServer/trunk/twistedcaldav/directory/principal.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/principal.py 2011-02-19 05:50:17 UTC (rev 7054)
+++ CalendarServer/trunk/twistedcaldav/directory/principal.py 2011-02-19 23:46:45 UTC (rev 7055)
@@ -839,6 +839,11 @@
##
def calendarUserAddresses(self):
+
+ # No CUAs if not enabledForCalendaring.
+ if not self.record.enabledForCalendaring:
+ return set()
+
# Get any CUAs defined by the directory implementation.
addresses = set(self.record.calendarUserAddresses)
@@ -887,7 +892,10 @@
returnValue(notification)
def calendarHomeURLs(self):
- homeURL = self._homeChildURL(None)
+ if self.record.enabledForCalendaring:
+ homeURL = self._homeChildURL(None)
+ else:
+ homeURL = ""
return (homeURL,) if homeURL else ()
def scheduleInboxURL(self):
@@ -909,7 +917,10 @@
return None
def addressBookHomeURLs(self):
- homeURL = self._addressBookHomeChildURL(None)
+ if self.record.enabledForAddressBooks:
+ homeURL = self._addressBookHomeChildURL(None)
+ else:
+ homeURL = ""
return (homeURL,) if homeURL else ()
def _homeChildURL(self, name):
Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_principal.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_principal.py 2011-02-19 05:50:17 UTC (rev 7054)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_principal.py 2011-02-19 23:46:45 UTC (rev 7055)
@@ -26,6 +26,7 @@
from twistedcaldav.cache import DisabledCacheNotifier
from twistedcaldav.config import config
from twistedcaldav.directory import augment, calendaruserproxy
+from twistedcaldav.directory.addressbook import DirectoryAddressBookHomeProvisioningResource
from twistedcaldav.directory.calendar import DirectoryCalendarHomeProvisioningResource
from twistedcaldav.directory.directory import DirectoryService
from twistedcaldav.directory.xmlfile import XMLDirectoryService
@@ -340,6 +341,57 @@
).issubset(set(recordResource.calendarUserAddresses()))
)
+ # Verify that if not enabled for calendaring, no CUAs:
+ record.enabledForCalendaring = False
+ self.failIf(recordResource.calendarUserAddresses())
+
+ def test_addressBookHomeURLs(self):
+ """
+ DirectoryPrincipalResource.addressBookHomeURLs(),
+ """
+ # No addressbook home provisioner should result in no addressbook homes.
+ for provisioningResource, recordType, recordResource, record in self._allRecords():
+ if record.enabledForAddressBooks:
+ self.failIf(tuple(recordResource.addressBookHomeURLs()))
+
+ # Need to create a addressbook home provisioner for each service.
+ addressBookRootResources = {}
+
+ for directory in self.directoryServices:
+ path = os.path.join(self.docroot, directory.__class__.__name__)
+
+ if os.path.exists(path):
+ rmdir(path)
+ os.mkdir(path)
+
+ # Need a data store
+ _newStore = CommonDataStore(path, None, True, False)
+
+ provisioningResource = DirectoryAddressBookHomeProvisioningResource(
+ directory,
+ "/addressbooks/",
+ _newStore
+ )
+
+ addressBookRootResources[directory.__class__.__name__] = provisioningResource
+
+ # AddressBook home provisioners should result in addressBook homes.
+ for provisioningResource, recordType, recordResource, record in self._allRecords():
+ if record.enabledForAddressBooks:
+ homeURLs = tuple(recordResource.addressBookHomeURLs())
+ self.failUnless(homeURLs)
+
+ # Turn off enabledForAddressBooks and addressBookHomeURLs should
+ # be empty
+ record.enabledForAddressBooks = False
+ self.failIf(tuple(recordResource.addressBookHomeURLs()))
+ record.enabledForAddressBooks = True
+
+ addressBookRootURL = addressBookRootResources[record.service.__class__.__name__].url()
+
+ for homeURL in homeURLs:
+ self.failUnless(homeURL.startswith(addressBookRootURL))
+
def test_calendarHomeURLs(self):
"""
DirectoryPrincipalResource.calendarHomeURLs(),
@@ -380,6 +432,12 @@
homeURLs = tuple(recordResource.calendarHomeURLs())
self.failUnless(homeURLs)
+ # Turn off enabledForCalendaring and calendarHomeURLs should
+ # be empty
+ record.enabledForCalendaring = False
+ self.failIf(tuple(recordResource.calendarHomeURLs()))
+ record.enabledForCalendaring = True
+
calendarRootURL = calendarRootResources[record.service.__class__.__name__].url()
inboxURL = recordResource.scheduleInboxURL()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110219/c8f0c175/attachment.html>
More information about the calendarserver-changes
mailing list