[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