[CalendarServer-changes] [13227] twext/trunk/twext/who

source_changes at macosforge.org source_changes at macosforge.org
Wed Apr 9 11:35:10 PDT 2014


Revision: 13227
          http://trac.calendarserver.org//changeset/13227
Author:   sagen at apple.com
Date:     2014-04-09 11:35:10 -0700 (Wed, 09 Apr 2014)
Log Message:
-----------
shortNames no longer mandatory; LDAP mapping for uid is

Modified Paths:
--------------
    twext/trunk/twext/who/directory.py
    twext/trunk/twext/who/ldap/_service.py
    twext/trunk/twext/who/ldap/test/test_util.py
    twext/trunk/twext/who/test/test_directory.py

Modified: twext/trunk/twext/who/directory.py
===================================================================
--- twext/trunk/twext/who/directory.py	2014-04-09 17:59:13 UTC (rev 13226)
+++ twext/trunk/twext/who/directory.py	2014-04-09 18:35:10 UTC (rev 13227)
@@ -330,7 +330,6 @@
     requiredFields = (
         FieldName.uid,
         FieldName.recordType,
-        FieldName.shortNames,
     )
 
 

Modified: twext/trunk/twext/who/ldap/_service.py
===================================================================
--- twext/trunk/twext/who/ldap/_service.py	2014-04-09 17:59:13 UTC (rev 13226)
+++ twext/trunk/twext/who/ldap/_service.py	2014-04-09 18:35:10 UTC (rev 13227)
@@ -36,7 +36,7 @@
 from ..idirectory import (
     DirectoryServiceError, DirectoryAvailabilityError,
     FieldName as BaseFieldName, RecordType as BaseRecordType,
-    IPlaintextPasswordVerifier
+    IPlaintextPasswordVerifier, DirectoryConfigurationError
 )
 from ..directory import (
     DirectoryService as BaseDirectoryService,
@@ -276,6 +276,9 @@
         if self.fieldName.recordType in fieldNameToAttributesMap:
             raise TypeError("Record type field may not be mapped")
 
+        if BaseFieldName.uid not in fieldNameToAttributesMap:
+            raise DirectoryConfigurationError("Mapping for uid required")
+
         self._fieldNameToAttributesMap = fieldNameToAttributesMap
         self._attributeToFieldNameMap = reverseDict(
             fieldNameToAttributesMap

Modified: twext/trunk/twext/who/ldap/test/test_util.py
===================================================================
--- twext/trunk/twext/who/ldap/test/test_util.py	2014-04-09 17:59:13 UTC (rev 13226)
+++ twext/trunk/twext/who/ldap/test/test_util.py	2014-04-09 18:35:10 UTC (rev 13227)
@@ -26,16 +26,22 @@
 )
 from ...test.test_xml import UnknownConstant
 from .._constants import LDAPOperand
-from .._service import DirectoryService, RecordTypeSchema
+from .._service import (
+    DirectoryService, RecordTypeSchema, DEFAULT_FIELDNAME_ATTRIBUTE_MAP
+)
 from .._util import (
     ldapQueryStringFromQueryStrings,
     ldapQueryStringFromMatchExpression,
     ldapQueryStringFromCompoundExpression,
     ldapQueryStringFromExpression,
 )
+from ...idirectory import FieldName as BaseFieldName
 
 
+TEST_FIELDNAME_MAP = dict(DEFAULT_FIELDNAME_ATTRIBUTE_MAP)
+TEST_FIELDNAME_MAP[BaseFieldName.uid] = (u"__who_uid__",)
 
+
 class LDAPQueryTestCase(unittest.TestCase):
     """
     Tests for LDAP query generation.
@@ -44,7 +50,10 @@
     def service(self):
         # Use intentionally funky conenction info, since we don't expect
         # to connect.
-        return DirectoryService(u"ldap://cretin/", u"o=plugh")
+        return DirectoryService(
+            u"ldap://cretin/", u"o=plugh",
+            fieldNameToAttributesMap=TEST_FIELDNAME_MAP
+        )
 
 
     def fieldNameMap(self, service):

Modified: twext/trunk/twext/who/test/test_directory.py
===================================================================
--- twext/trunk/twext/who/test/test_directory.py	2014-04-09 17:59:13 UTC (rev 13226)
+++ twext/trunk/twext/who/test/test_directory.py	2014-04-09 18:35:10 UTC (rev 13227)
@@ -696,27 +696,6 @@
         self.assertRaises(InvalidDirectoryRecordError, self.makeRecord, fields)
 
 
-    def test_initWithNoShortNames(self):
-        """
-        Directory records must have a short name.
-        """
-        fields = self.fields_wsanchez.copy()
-        del fields[FieldName.shortNames]
-        self.assertRaises(InvalidDirectoryRecordError, self.makeRecord, fields)
-
-        fields = self.fields_wsanchez.copy()
-        fields[FieldName.shortNames] = ()
-        self.assertRaises(InvalidDirectoryRecordError, self.makeRecord, fields)
-
-        fields = self.fields_wsanchez.copy()
-        fields[FieldName.shortNames] = (u"",)
-        self.assertRaises(InvalidDirectoryRecordError, self.makeRecord, fields)
-
-        fields = self.fields_wsanchez.copy()
-        fields[FieldName.shortNames] = (u"wsanchez", u"")
-        self.assertRaises(InvalidDirectoryRecordError, self.makeRecord, fields)
-
-
     def test_initNormalizeEmailLowercase(self):
         """
         Email addresses are normalized to lowercase.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140409/e42c8ba5/attachment-0001.html>


More information about the calendarserver-changes mailing list