[CalendarServer-changes] [1458]
CalendarServer/trunk/twistedcaldav/directory/test/
test_opendirectoryschema.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri Apr 6 19:11:56 PDT 2007
Revision: 1458
http://trac.macosforge.org/projects/calendarserver/changeset/1458
Author: dreid at apple.com
Date: 2007-04-06 19:11:55 -0700 (Fri, 06 Apr 2007)
Log Message:
-----------
Fix tests broken by adding support for multiple vhosts in multiple records in multiple nodes.
And add tests for prefering vhosts based on node location.
Modified Paths:
--------------
CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryschema.py
Modified: CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryschema.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryschema.py 2007-04-07 00:41:52 UTC (rev 1457)
+++ CalendarServer/trunk/twistedcaldav/directory/test/test_opendirectoryschema.py 2007-04-07 02:11:55 UTC (rev 1458)
@@ -30,7 +30,7 @@
"""
Test Open Directory service schema.
"""
-
+
plist_nomacosxserver_key = """<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
@@ -186,7 +186,7 @@
</dict>
</dict>
</dict>
-
+
<key>C18C34AC-3D9E-403C-8A33-BFC303F3840E</key>
<dict>
<key>hostname</key>
@@ -301,7 +301,7 @@
</dict>
</dict>
</dict>
-
+
<key>C18C34AC-3D9E-403C-8A33-BFC303F3840E</key>
<dict>
<key>hostname</key>
@@ -425,7 +425,7 @@
</dict>
</dict>
</dict>
-
+
<key>C18C34AC-3D9E-403C-8A33-BFC303F3840E</key>
<dict>
<key>hostDetails</key>
@@ -544,7 +544,7 @@
</dict>
</dict>
</dict>
-
+
<key>C18C34AC-3D9E-403C-8A33-BFC303F3840E</key>
<dict>
<key>hostname</key>
@@ -647,7 +647,7 @@
</dict>
</dict>
</dict>
-
+
<key>C18C34AC-3D9E-403C-8A33-BFC303F3840E</key>
<dict>
<key>hostname</key>
@@ -769,7 +769,7 @@
</dict>
</dict>
</dict>
-
+
<key>C18C34AC-3D9E-403C-8A33-BFC303F3840E</key>
<dict>
<key>hostname</key>
@@ -828,7 +828,7 @@
service = OpenDirectoryService(node="/Search", dosetup=False)
if service._parseXMLPlist("calendar.apple.com", "recordit", plist, "GUIDIFY"):
self.fail(msg="Plist parse should have failed: %s" % (title,))
-
+
plists = (
(PlistParse.plist_nomacosxserver_key, "nomacosxserver_key"),
(PlistParse.plist_nocalendarservice, "nocalendarservice"),
@@ -855,10 +855,10 @@
self.fail(msg="Plist parse should not have failed: %s" % (recordName,))
else:
expanded = service._getCalendarUserAddresses(DirectoryService.recordType_users, recordName, record)
-
+
# Verify that we extracted the proper items
self.assertEqual(expanded, result, msg=title % (expanded, result,))
-
+
data = (
(
"user01",
@@ -892,27 +892,36 @@
"User with no email addresses, %s != %s",
),
)
-
+
for recordName, record, result, title in data:
_doTest(recordName, record, result, title)
class ODRecordsParse (twisted.trial.unittest.TestCase):
record_good = ("computer1.apple.com", {
- dsattributes.kDS1AttrGeneratedUID : "GUID1",
- dsattributes.kDSNAttrRecordName : "computer1.apple.com",
- dsattributes.kDS1AttrXMLPlist : PlistParse.plist_good,
- })
+ dsattributes.kDS1AttrGeneratedUID : "GUID1",
+ dsattributes.kDSNAttrRecordName : "computer1.apple.com",
+ dsattributes.kDS1AttrXMLPlist : PlistParse.plist_good,
+ dsattributes.kDSNAttrMetaNodeLocation : "/LDAPv3/127.0.0.1",
+ })
record_good_other = ("computer2.apple.com", {
- dsattributes.kDS1AttrGeneratedUID : "GUID1",
- dsattributes.kDSNAttrRecordName : "computer2.apple.com",
- dsattributes.kDS1AttrXMLPlist : PlistParse.plist_good_other,
+ dsattributes.kDS1AttrGeneratedUID : "GUID1",
+ dsattributes.kDSNAttrRecordName : "computer2.apple.com",
+ dsattributes.kDS1AttrXMLPlist : PlistParse.plist_good_other,
+ dsattributes.kDSNAttrMetaNodeLocation : "/LDAPv3/127.0.0.1",
})
- record_good_duplicate = ("computer2.apple.com", {
- dsattributes.kDS1AttrGeneratedUID : "GUID1",
- dsattributes.kDSNAttrRecordName : "computer2.apple.com",
- dsattributes.kDS1AttrXMLPlist : PlistParse.plist_good,
+ record_good_duplicate = ("computer3.apple.com", {
+ dsattributes.kDS1AttrGeneratedUID : "GUID2",
+ dsattributes.kDSNAttrRecordName : "computer2.apple.com",
+ dsattributes.kDS1AttrXMLPlist : PlistParse.plist_good,
+ dsattributes.kDSNAttrMetaNodeLocation : "/LDAPv3/directory.apple.com",
})
+ record_good_local_duplicate = ("ServiceInformation", {
+ dsattributes.kDS1AttrGeneratedUID : "GUID3",
+ dsattributes.kDSNAttrRecordName : "computer2.apple.com",
+ dsattributes.kDS1AttrXMLPlist : PlistParse.plist_good,
+ dsattributes.kDSNAttrMetaNodeLocation : "/Local/Default",
+ })
def test_odrecords_error(self):
def _doParseRecords(recordlist, title):
@@ -922,14 +931,10 @@
self.fail(msg="Record parse should have failed: %s" % (title,))
except OpenDirectoryInitError:
pass
-
+
records = (
({}, "no records found"),
({
- ODRecordsParse.record_good[0] : ODRecordsParse.record_good[1],
- ODRecordsParse.record_good_duplicate[0] : ODRecordsParse.record_good_duplicate[1],
- }, "duplicate records found"),
- ({
ODRecordsParse.record_good_other[0] : ODRecordsParse.record_good_other[1],
}, "non-matching record found"),
)
@@ -944,7 +949,7 @@
service._parseComputersRecords(recordlist, "calendar.apple.com")
except OpenDirectoryInitError, ex:
self.fail(msg="Record parse should not have failed: \"%s\" with error: %s" % (title, ex))
-
+
records = (
({
ODRecordsParse.record_good[0] : ODRecordsParse.record_good[1],
@@ -958,3 +963,29 @@
for recordlist, title in records:
_doParseRecords(recordlist, title)
+ def test_odrecords_multiple(self):
+ def _doParseRecords(recordlist, title, guid):
+ service = OpenDirectoryService(node="/Search", dosetup=False)
+ service._parseComputersRecords(recordlist, "calendar.apple.com")
+ gotGuid = service.servicetag.split(':', 1)[0]
+
+ self.assertEquals(guid, gotGuid,
+ "Got wrong guid, %s: Expected %s not %s" % (title, guid, gotGuid))
+
+ records = (
+ ({ODRecordsParse.record_good_other[0] : ODRecordsParse.record_good_other[1],
+ ODRecordsParse.record_good_duplicate[0] : ODRecordsParse.record_good_duplicate[1],
+ ODRecordsParse.record_good_local_duplicate[0] :
+ ODRecordsParse.record_good_local_duplicate[1]},
+ "Remote Record Preferred", "GUID2"),
+ ({ODRecordsParse.record_good[0] : ODRecordsParse.record_good[1],
+ ODRecordsParse.record_good_local_duplicate[0] :
+ ODRecordsParse.record_good_local_duplicate[1]},
+ "Local OD Preferred", "GUID1"),
+ ({ODRecordsParse.record_good_local_duplicate[0] :
+ ODRecordsParse.record_good_local_duplicate[1]},
+ "Local Node Preferred", "GUID3"),
+ )
+
+ for recordlist, title, guid in records:
+ _doParseRecords(recordlist, title, guid)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070406/c5d87828/attachment.html
More information about the calendarserver-changes
mailing list