[CalendarServer-changes] [9384] CalendarServer/trunk/calendarserver/platform/darwin/od

source_changes at macosforge.org source_changes at macosforge.org
Mon Jun 25 14:12:58 PDT 2012


Revision: 9384
          http://trac.macosforge.org/projects/calendarserver/changeset/9384
Author:   sagen at apple.com
Date:     2012-06-25 14:12:57 -0700 (Mon, 25 Jun 2012)
Log Message:
-----------
Decode compound query string from utf-8 to unicode

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

Modified: CalendarServer/trunk/calendarserver/platform/darwin/od/opendirectory.py
===================================================================
--- CalendarServer/trunk/calendarserver/platform/darwin/od/opendirectory.py	2012-06-25 16:27:34 UTC (rev 9383)
+++ CalendarServer/trunk/calendarserver/platform/darwin/od/opendirectory.py	2012-06-25 21:12:57 UTC (rev 9384)
@@ -347,7 +347,7 @@
             recordType,
             None,
             0x210B, # adjustMatchType(matchType, casei),
-            compound,
+            compound.decode("utf-8"),
             attributeNames,
             count,
             None)

Modified: CalendarServer/trunk/calendarserver/platform/darwin/od/test/test_opendirectory.py
===================================================================
--- CalendarServer/trunk/calendarserver/platform/darwin/od/test/test_opendirectory.py	2012-06-25 16:27:34 UTC (rev 9383)
+++ CalendarServer/trunk/calendarserver/platform/darwin/od/test/test_opendirectory.py	2012-06-25 21:12:57 UTC (rev 9384)
@@ -704,6 +704,35 @@
             # Master user:
             self.assertTrue("odtestamanda" in recordNames)
 
+        def test_queryRecordsWithAttributes_list_nonascii(self):
+
+            directory = opendirectory.odInit("/Search")
+
+            expressions = [
+                dsquery.match(dsattributes.kDS1AttrFirstName, "\xe4\xbd\x90", "contains"),
+                dsquery.match(dsattributes.kDS1AttrLastName, "Test", "contains"),
+            ]
+
+            compound = dsquery.expression(dsquery.expression.AND, expressions).generate()
+
+            results = opendirectory.queryRecordsWithAttributes_list(
+                directory,
+                compound,
+                True,
+                [
+                    dsattributes.kDSStdRecordTypeUsers,
+                    dsattributes.kDSStdRecordTypeGroups,
+                    dsattributes.kDSStdRecordTypeResources,
+                    dsattributes.kDSStdRecordTypePlaces,
+                ],
+                USER_ATTRIBUTES,
+                count=0
+            )
+            recordNames = [x[0] for x in results]
+            # Master user:
+            self.assertTrue("odtestsatou" in recordNames)
+
+
         def test_queryRecordsWithAttributes_list_local(self):
 
             directory = opendirectory.odInit("/Search")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120625/cbfb906a/attachment.html>


More information about the calendarserver-changes mailing list