[CalendarServer-changes] [6564] CalendarServer/trunk/calendarserver/od

source_changes at macosforge.org source_changes at macosforge.org
Wed Nov 3 15:06:14 PDT 2010


Revision: 6564
          http://trac.macosforge.org/projects/calendarserver/changeset/6564
Author:   sagen at apple.com
Date:     2010-11-03 15:06:10 -0700 (Wed, 03 Nov 2010)
Log Message:
-----------
Fixes setup of od test users, so auth tests will work

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/od/opendirectory.py
    CalendarServer/trunk/calendarserver/od/test/setup_directory.py
    CalendarServer/trunk/calendarserver/od/test/test_opendirectory.py

Modified: CalendarServer/trunk/calendarserver/od/opendirectory.py
===================================================================
--- CalendarServer/trunk/calendarserver/od/opendirectory.py	2010-11-03 21:40:13 UTC (rev 6563)
+++ CalendarServer/trunk/calendarserver/od/opendirectory.py	2010-11-03 22:06:10 UTC (rev 6564)
@@ -19,6 +19,7 @@
 """
 
 import OpenDirectory
+import objc
 from twext.python.log import Logger
 
 log = Logger()
@@ -67,6 +68,11 @@
     return caseInsensitiveEquivalents[matchType] if caseInsensitive else matchType
 
 def recordToResult(record):
+    """
+    Takes an ODRecord and turns it into a (recordName, attributesDictionary)
+    tuple.  Only unicode values are returned. (Not sure what to do with
+    non-unicode values)
+    """
     details, error = record.recordDetailsForAttributes_error_(None, None)
     if error:
         log.error(error)
@@ -74,9 +80,13 @@
     result = {}
     for key, value in details.iteritems():
         if key in SINGLE_VALUE_ATTRIBUTES:
-            result[key] = None if len(value) == 0 else unicode(value[0])
+            if len(value) == 0:
+                result[key] = None
+            else:
+                if isinstance(value[0], objc.pyobjc_unicode):
+                    result[key] = value[0]
         else:
-            result[key] = [unicode(v) for v in value]
+            result[key] = [unicode(v) for v in value if isinstance(v, objc.pyobjc_unicode)]
 
     return (details.get(OpenDirectory.kODAttributeTypeRecordName, [None])[0], result)
 

Modified: CalendarServer/trunk/calendarserver/od/test/setup_directory.py
===================================================================
--- CalendarServer/trunk/calendarserver/od/test/setup_directory.py	2010-11-03 21:40:13 UTC (rev 6563)
+++ CalendarServer/trunk/calendarserver/od/test/setup_directory.py	2010-11-03 22:06:10 UTC (rev 6564)
@@ -29,7 +29,6 @@
     (
         "odtestamanda",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["Amanda"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
             OpenDirectory.kODAttributeTypeFullName : ["Amanda Test"],
@@ -41,7 +40,6 @@
     (
         "odtestbetty",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["Betty"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
             OpenDirectory.kODAttributeTypeFullName : ["Betty Test"],
@@ -53,9 +51,9 @@
     (
         "odtestcarlene",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["Carlene"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
+            OpenDirectory.kODAttributeTypeFullName : ["Carlene Test"],
             OpenDirectory.kODAttributeTypeEMailAddress : ["carlene at example.com"],
             OpenDirectory.kODAttributeTypeGUID : ["9dc04a72-e6dd-11df-9492-0800200c9a66"],
             OpenDirectory.kODAttributeTypeUniqueID : ["33302"],
@@ -64,9 +62,9 @@
     (
         "odtestdenise",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["Denise"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
+            OpenDirectory.kODAttributeTypeFullName : ["Denise Test"],
             OpenDirectory.kODAttributeTypeEMailAddress : ["denise at example.com"],
             OpenDirectory.kODAttributeTypeGUID : ["9dc04a73-e6dd-11df-9492-0800200c9a66"],
             OpenDirectory.kODAttributeTypeUniqueID : ["33303"],
@@ -90,7 +88,6 @@
     (
         "odtestalbert",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["Albert"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
             OpenDirectory.kODAttributeTypeFullName : ["Albert Test"],
@@ -102,7 +99,6 @@
     (
         "odtestbill",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["Bill"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
             OpenDirectory.kODAttributeTypeFullName : ["Bill Test"],
@@ -114,9 +110,9 @@
     (
         "odtestcarl",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["Carl"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
+            OpenDirectory.kODAttributeTypeFullName : ["Carl Test"],
             OpenDirectory.kODAttributeTypeEMailAddress : ["carl at example.com"],
             OpenDirectory.kODAttributeTypeGUID : ["9dc04a76-e6dd-11df-9492-0800200c9a66"],
             OpenDirectory.kODAttributeTypeUniqueID : ["33352"],
@@ -125,9 +121,9 @@
     (
         "odtestdavid",
         {
-            OpenDirectory.kODAttributeTypePassword : ["password"],
             OpenDirectory.kODAttributeTypeFirstName : ["David"],
             OpenDirectory.kODAttributeTypeLastName  : ["Test"],
+            OpenDirectory.kODAttributeTypeFullName : ["David Test"],
             OpenDirectory.kODAttributeTypeEMailAddress : ["david at example.com"],
             OpenDirectory.kODAttributeTypeGUID : ["9dc04a77-e6dd-11df-9492-0800200c9a66"],
             OpenDirectory.kODAttributeTypeUniqueID : ["33353"],
@@ -262,6 +258,12 @@
                 try:
                     record = createRecord(node, OpenDirectory.kODRecordTypeUsers, recordName, attrs)
                     print "Successfully created user %s" % (recordName,)
+                    result, error = record.changePassword_toPassword_error_(
+                        None, "password", None)
+                    if error or not result:
+                        print "Failed to set password for %s: %s" % (recordName, error)
+                    else:
+                        print "Successfully set password for %s" % (recordName,)
                 except ODError, e:
                     print "Failed to create user %s: %s" % (recordName, e)
             else:

Modified: CalendarServer/trunk/calendarserver/od/test/test_opendirectory.py
===================================================================
--- CalendarServer/trunk/calendarserver/od/test/test_opendirectory.py	2010-11-03 21:40:13 UTC (rev 6563)
+++ CalendarServer/trunk/calendarserver/od/test/test_opendirectory.py	2010-11-03 22:06:10 UTC (rev 6564)
@@ -715,19 +715,13 @@
             self.assertEquals(record, None)
 
         def test_basicAuth_master(self):
-
             directory = opendirectory.odInit("/Search")
             result = opendirectory.authenticateUserBasic(directory,
                 "/LDAPv3/127.0.0.1", "odtestamanda", "password")
             self.assertTrue(result)
 
-        test_basicAuth_master.todo = "Not assigning passwords correctly, apparently"
-
         def test_basicAuth_local(self):
-
             directory = opendirectory.odInit("/Search")
             result = opendirectory.authenticateUserBasic(directory,
                 "/Local/Default", "odtestalbert", "password")
             self.assertTrue(result)
-
-        test_basicAuth_local.todo = "Not assigning passwords correctly, apparently"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20101103/f3a418a8/attachment-0001.html>


More information about the calendarserver-changes mailing list