[CalendarServer-changes] [12309] twext/trunk/twext/who/ldap

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 12 11:20:33 PDT 2014


Revision: 12309
          http://trac.calendarserver.org//changeset/12309
Author:   wsanchez at apple.com
Date:     2014-01-11 13:29:12 -0800 (Sat, 11 Jan 2014)
Log Message:
-----------
Add test_connect_withOptions.

Modified Paths:
--------------
    twext/trunk/twext/who/ldap/_service.py
    twext/trunk/twext/who/ldap/test/test_service.py

Modified: twext/trunk/twext/who/ldap/_service.py
===================================================================
--- twext/trunk/twext/who/ldap/_service.py	2014-01-11 21:18:57 UTC (rev 12308)
+++ twext/trunk/twext/who/ldap/_service.py	2014-01-11 21:29:12 UTC (rev 12309)
@@ -125,8 +125,17 @@
         self.url = url
         self.credentials = credentials
         self._timeout = timeout
-        self._tlsCACertificateFile = tlsCACertificateFile
-        self._tlsCACertificateDirectory = tlsCACertificateDirectory
+
+        if tlsCACertificateFile is None:
+            self._tlsCACertificateFile = None
+        else:
+            self._tlsCACertificateFile = tlsCACertificateFile.path
+
+        if tlsCACertificateDirectory is None:
+            self._tlsCACertificateDirectory = None
+        else:
+            self._tlsCACertificateDirectory = tlsCACertificateDirectory.path
+
         self._useTLS = useTLS,
 
         if debug:
@@ -158,10 +167,10 @@
             # Twisted adopts the new logging stuff.
 
             for option, value in (
-                (ldap.OPT_DEBUG_LEVEL, self._debug),
                 (ldap.OPT_TIMEOUT, self._timeout),
                 (ldap.OPT_X_TLS_CACERTFILE, self._tlsCACertificateFile),
                 (ldap.OPT_X_TLS_CACERTDIR, self._tlsCACertificateDirectory),
+                (ldap.OPT_DEBUG_LEVEL, self._debug),
             ):
                 if value is not None:
                     connection.set_option(option, value)

Modified: twext/trunk/twext/who/ldap/test/test_service.py
===================================================================
--- twext/trunk/twext/who/ldap/test/test_service.py	2014-01-11 21:18:57 UTC (rev 12308)
+++ twext/trunk/twext/who/ldap/test/test_service.py	2014-01-11 21:29:12 UTC (rev 12309)
@@ -21,6 +21,7 @@
 import ldap
 from mockldap import MockLdap
 
+from twisted.python.filepath import FilePath
 from twisted.internet.defer import inlineCallbacks
 from twisted.trial import unittest
 
@@ -53,8 +54,8 @@
         # super(BaseTestCase, self).tearDown()
 
 
-    def service(self, subClass=None, xmlData=None):
-        return DirectoryService()
+    def service(self, **kwargs):
+        return DirectoryService(**kwargs)
 
 
 
@@ -91,10 +92,10 @@
         connection = yield service._connect()
 
         for option in (
-            ldap.OPT_DEBUG_LEVEL,
             ldap.OPT_TIMEOUT,
             ldap.OPT_X_TLS_CACERTFILE,
             ldap.OPT_X_TLS_CACERTDIR,
+            ldap.OPT_DEBUG_LEVEL,
         ):
             self.assertRaises(
                 KeyError,
@@ -102,6 +103,28 @@
             )
 
 
+    @inlineCallbacks
+    def test_connect_withOptions(self):
+        """
+        Connect with default arguments.
+        """
+        service = self.service(
+            timeout=18,
+            tlsCACertificateFile=FilePath("/path/to/cert"),
+            tlsCACertificateDirectory=FilePath("/path/to/certdir"),
+            useTLS=True,
+            debug=True,
+        )
+        connection = yield service._connect()
 
+        opt = lambda k: connection.get_option(k)
+
+        self.assertEquals(opt(ldap.OPT_TIMEOUT), 18)
+        self.assertEquals(opt(ldap.OPT_X_TLS_CACERTFILE), "/path/to/cert")
+        self.assertEquals(opt(ldap.OPT_X_TLS_CACERTDIR), "/path/to/certdir")
+        self.assertEquals(opt(ldap.OPT_DEBUG_LEVEL), 255)
+
+
+
 mockDirectoryData = dict(
 )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/656eed93/attachment.html>


More information about the calendarserver-changes mailing list