[CalendarServer-changes] [2174] CalendarServer/trunk/twistedcaldav/directory
source_changes at macosforge.org
source_changes at macosforge.org
Thu Feb 21 20:14:12 PST 2008
Revision: 2174
http://trac.macosforge.org/projects/calendarserver/changeset/2174
Author: cdaboo at apple.com
Date: 2008-02-21 20:14:12 -0800 (Thu, 21 Feb 2008)
Log Message:
-----------
Fix a test and add some more for enabledForCalendaring state. Fix enabledForCalendaring = False behavior.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryrecords.py
Modified: CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py 2008-02-22 02:51:48 UTC (rev 2173)
+++ CalendarServer/trunk/twistedcaldav/directory/appleopendirectory.py 2008-02-22 04:14:12 UTC (rev 2174)
@@ -468,7 +468,6 @@
"Record (%s) %s is not enabled for calendaring but may be used in ACLs"
% (recordType, recordShortName), system="OpenDirectoryService"
)
- enabledForCalendaring = False
def invalidRecord():
logging.err(
@@ -487,12 +486,14 @@
else:
if allowForACLs():
disableForCalendaring()
+ enabledForCalendaring = False
else:
invalidRecord()
continue
else:
if allowForACLs():
disableForCalendaring()
+ enabledForCalendaring = False
else:
invalidRecord()
continue
Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryrecords.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryrecords.py 2008-02-22 02:51:48 UTC (rev 2173)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryrecords.py 2008-02-22 04:14:12 UTC (rev 2174)
@@ -46,6 +46,7 @@
def setUp(self):
super(ReloadCache, self).setUp()
self._service = OpenDirectoryService(node="/Search", dosetup=False)
+ self._service.servicetags.add("FE588D50-0514-4DF9-BCB5-8ECA5F3DA274:030572AE-ABEC-4E0F-83C9-FCA304769E5F:calendar")
def tearDown(self):
for call in self._service._delayedCalls:
@@ -61,6 +62,17 @@
self.assertTrue(len(missing) == 0, msg="Directory records not found: %s" % (missing,))
self.assertTrue(len(extras) == 0, msg="Directory records not expected: %s" % (extras,))
+ def _verifyRecordsCheckEnabled(self, recordType, expected, enabled):
+ expected = set(expected)
+ found = set([item for item in self._service._records[recordType]["records"].iterkeys()
+ if self._service._records[recordType]["records"][item].enabledForCalendaring == enabled])
+
+ missing = expected.difference(found)
+ extras = found.difference(expected)
+
+ self.assertTrue(len(missing) == 0, msg="Directory records not found: %s" % (missing,))
+ self.assertTrue(len(extras) == 0, msg="Directory records not expected: %s" % (extras,))
+
def _verifyDisabledRecords(self, recordType, expectedNames, expectedGUIDs):
def check(disabledType, expected):
expected = set(expected)
@@ -78,20 +90,20 @@
def test_normal(self):
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02"),
],
DirectoryService.recordType_groups: [
- fakeODRecord("Group 01"),
- fakeODRecord("Group 02"),
+ fakeODRecordWithServicesLocator("Group 01"),
+ fakeODRecordWithServicesLocator("Group 02"),
],
DirectoryService.recordType_resources: [
- fakeODRecord("Resource 01"),
- fakeODRecord("Resource 02"),
+ fakeODRecordWithServicesLocator("Resource 01"),
+ fakeODRecordWithServicesLocator("Resource 02"),
],
DirectoryService.recordType_locations: [
- fakeODRecord("Location 01"),
- fakeODRecord("Location 02"),
+ fakeODRecordWithServicesLocator("Location 01"),
+ fakeODRecordWithServicesLocator("Location 02"),
],
}
@@ -112,10 +124,55 @@
self._verifyRecords(DirectoryService.recordType_locations, ("location01", "location02"))
self._verifyDisabledRecords(DirectoryService.recordType_locations, (), ())
+ def test_normal_disabledusers(self):
+ self._service.fakerecords = {
+ DirectoryService.recordType_users: [
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02"),
+ fakeODRecordWithoutServicesLocator("User 03"),
+ fakeODRecordWithoutServicesLocator("User 04"),
+ ],
+ DirectoryService.recordType_groups: [
+ fakeODRecordWithServicesLocator("Group 01"),
+ fakeODRecordWithServicesLocator("Group 02"),
+ fakeODRecordWithoutServicesLocator("Group 03"),
+ fakeODRecordWithoutServicesLocator("Group 04"),
+ ],
+ DirectoryService.recordType_resources: [
+ fakeODRecordWithServicesLocator("Resource 01"),
+ fakeODRecordWithServicesLocator("Resource 02"),
+ fakeODRecordWithoutServicesLocator("Resource 03"),
+ fakeODRecordWithoutServicesLocator("Resource 04"),
+ ],
+ DirectoryService.recordType_locations: [
+ fakeODRecordWithServicesLocator("Location 01"),
+ fakeODRecordWithServicesLocator("Location 02"),
+ fakeODRecordWithoutServicesLocator("Location 03"),
+ fakeODRecordWithoutServicesLocator("Location 04"),
+ ],
+ }
+
+ self._service.reloadCache(DirectoryService.recordType_users)
+ self._service.reloadCache(DirectoryService.recordType_groups)
+ self._service.reloadCache(DirectoryService.recordType_resources)
+ self._service.reloadCache(DirectoryService.recordType_locations)
+
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_users, ("user01", "user02"), True)
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_users, ("user03", "user04"), False)
+
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_groups, ("group01", "group02"), True)
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_groups, ("group03", "group04"), False)
+
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_resources, ("resource01", "resource02"), True)
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_resources, (), False)
+
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_locations, ("location01", "location02"), True)
+ self._verifyRecordsCheckEnabled(DirectoryService.recordType_locations, (), False)
+
def test_normalCacheMiss(self):
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
+ fakeODRecordWithServicesLocator("User 01"),
],
}
@@ -126,9 +183,9 @@
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02"),
- fakeODRecord("User 03", guid="D10F3EE0-5014-41D3-8488-3819D3EF3B2A"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02"),
+ fakeODRecordWithServicesLocator("User 03", guid="D10F3EE0-5014-41D3-8488-3819D3EF3B2A"),
],
}
@@ -141,9 +198,9 @@
def test_duplicateRecords(self):
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02"),
- fakeODRecord("User 02"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02"),
+ fakeODRecordWithServicesLocator("User 02"),
],
}
@@ -157,9 +214,9 @@
def test_duplicateName(self):
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02", guid="A25775BB-1281-4606-98C6-2893B2D5CCD7"),
- fakeODRecord("User 02", guid="30CA2BB9-C935-4A5D-80E2-79266BCB0255"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02", guid="A25775BB-1281-4606-98C6-2893B2D5CCD7"),
+ fakeODRecordWithServicesLocator("User 02", guid="30CA2BB9-C935-4A5D-80E2-79266BCB0255"),
],
}
@@ -175,9 +232,9 @@
def test_duplicateGUID(self):
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8"),
- fakeODRecord("User 03", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8"),
+ fakeODRecordWithServicesLocator("User 03", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8"),
],
}
@@ -193,10 +250,10 @@
def test_duplicateCombo(self):
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8"),
- fakeODRecord("User 02", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8", shortName="user03"),
- fakeODRecord("User 02", guid="136E369F-DB40-4135-878D-B75D38242D39"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8"),
+ fakeODRecordWithServicesLocator("User 02", guid="113D7F74-F84A-4F17-8C96-CE8F10D68EF8", shortName="user03"),
+ fakeODRecordWithServicesLocator("User 02", guid="136E369F-DB40-4135-878D-B75D38242D39"),
],
}
@@ -212,9 +269,9 @@
def test_duplicateGUIDCacheMiss(self):
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02", guid="EDB9EE55-31F2-4EA9-B5FB-D8AE2A8BA35E"),
- fakeODRecord("User 03", guid="D10F3EE0-5014-41D3-8488-3819D3EF3B2A"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02", guid="EDB9EE55-31F2-4EA9-B5FB-D8AE2A8BA35E"),
+ fakeODRecordWithServicesLocator("User 03", guid="D10F3EE0-5014-41D3-8488-3819D3EF3B2A"),
],
}
@@ -225,11 +282,11 @@
self._service.fakerecords = {
DirectoryService.recordType_users: [
- fakeODRecord("User 01"),
- fakeODRecord("User 02", guid="EDB9EE55-31F2-4EA9-B5FB-D8AE2A8BA35E"),
- fakeODRecord("User 02", guid="EDB9EE55-31F2-4EA9-B5FB-D8AE2A8BA35E", shortName="user04"),
- fakeODRecord("User 03", guid="62368DDF-0C62-4C97-9A58-DE9FD46131A0"),
- fakeODRecord("User 03", guid="62368DDF-0C62-4C97-9A58-DE9FD46131A0", shortName="user05"),
+ fakeODRecordWithServicesLocator("User 01"),
+ fakeODRecordWithServicesLocator("User 02", guid="EDB9EE55-31F2-4EA9-B5FB-D8AE2A8BA35E"),
+ fakeODRecordWithServicesLocator("User 02", guid="EDB9EE55-31F2-4EA9-B5FB-D8AE2A8BA35E", shortName="user04"),
+ fakeODRecordWithServicesLocator("User 03", guid="62368DDF-0C62-4C97-9A58-DE9FD46131A0"),
+ fakeODRecordWithServicesLocator("User 03", guid="62368DDF-0C62-4C97-9A58-DE9FD46131A0", shortName="user05"),
],
}
@@ -243,7 +300,7 @@
("EDB9EE55-31F2-4EA9-B5FB-D8AE2A8BA35E", "62368DDF-0C62-4C97-9A58-DE9FD46131A0", "D10F3EE0-5014-41D3-8488-3819D3EF3B2A"),
)
-def fakeODRecord(fullName, shortName=None, guid=None, email=None):
+def fakeODRecordWithServicesLocator(fullName, shortName=None, guid=None, email=None):
if shortName is None:
shortName = shortNameForFullName(fullName)
@@ -265,6 +322,27 @@
}
]
+def fakeODRecordWithoutServicesLocator(fullName, shortName=None, guid=None, email=None):
+ if shortName is None:
+ shortName = shortNameForFullName(fullName)
+
+ if guid is None:
+ guid = guidForShortName(shortName)
+ else:
+ guid = guid.lower()
+
+ if email is None:
+ email = "%s at example.com" % (shortName,)
+
+ return [
+ shortName, {
+ dsattributes.kDS1AttrDistinguishedName: fullName,
+ dsattributes.kDS1AttrGeneratedUID: guid,
+ dsattributes.kDSNAttrEMailAddress: email,
+ dsattributes.kDSNAttrMetaNodeLocation: "/LDAPv3/127.0.0.1",
+ }
+ ]
+
def shortNameForFullName(fullName):
return fullName.lower().replace(" ", "")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080221/237721f7/attachment-0001.html
More information about the calendarserver-changes
mailing list