[CalendarServer-changes] [12969] CalendarServer/branches/users/sagen/move2who-4/txdav

source_changes at macosforge.org source_changes at macosforge.org
Tue Mar 18 20:15:44 PDT 2014


Revision: 12969
          http://trac.calendarserver.org//changeset/12969
Author:   sagen at apple.com
Date:     2014-03-18 20:15:43 -0700 (Tue, 18 Mar 2014)
Log Message:
-----------
Deal with unsupported search fields; make sure multiple fields are supported in principal property search.

Modified Paths:
--------------
    CalendarServer/branches/users/sagen/move2who-4/txdav/dps/test/test_client.py
    CalendarServer/branches/users/sagen/move2who-4/txdav/who/directory.py

Modified: CalendarServer/branches/users/sagen/move2who-4/txdav/dps/test/test_client.py
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/txdav/dps/test/test_client.py	2014-03-19 02:32:52 UTC (rev 12968)
+++ CalendarServer/branches/users/sagen/move2who-4/txdav/dps/test/test_client.py	2014-03-19 03:15:43 UTC (rev 12969)
@@ -151,6 +151,7 @@
     def test_recordsMatchingFields_anyType(self):
         fields = (
             (u"fullNames", "anche", MatchFlags.caseInsensitive, MatchType.contains),
+            (u"fullNames", "morgen", MatchFlags.caseInsensitive, MatchType.contains),
         )
         records = (yield self.directory.recordsMatchingFields(
             fields, operand=Operand.OR, recordType=None
@@ -159,6 +160,7 @@
         for r in records:
             for shortName in r.shortNames:
                 matchingShortNames.add(shortName)
+        self.assertTrue("sagen" in matchingShortNames)
         self.assertTrue("dre" in matchingShortNames)
         self.assertTrue("wsanchez" in matchingShortNames)
         self.assertTrue("sanchezoffice" in matchingShortNames)
@@ -183,6 +185,25 @@
 
 
     @inlineCallbacks
+    def test_recordsMatchingFields_unsupportedField(self):
+        fields = (
+            (u"fullNames", "anche", MatchFlags.caseInsensitive, MatchType.contains),
+            # This should be ignored:
+            (u"foo", "bar", MatchFlags.caseInsensitive, MatchType.contains),
+        )
+        records = (yield self.directory.recordsMatchingFields(
+            fields, operand=Operand.OR, recordType=None
+        ))
+        matchingShortNames = set()
+        for r in records:
+            for shortName in r.shortNames:
+                matchingShortNames.add(shortName)
+        self.assertTrue("dre" in matchingShortNames)
+        self.assertTrue("wsanchez" in matchingShortNames)
+        self.assertTrue("sanchezoffice" in matchingShortNames)
+
+
+    @inlineCallbacks
     def test_verifyPlaintextPassword(self):
         expectations = (
             (testPassword, True),  # Correct

Modified: CalendarServer/branches/users/sagen/move2who-4/txdav/who/directory.py
===================================================================
--- CalendarServer/branches/users/sagen/move2who-4/txdav/who/directory.py	2014-03-19 02:32:52 UTC (rev 12968)
+++ CalendarServer/branches/users/sagen/move2who-4/txdav/who/directory.py	2014-03-19 03:15:43 UTC (rev 12969)
@@ -133,8 +133,16 @@
         """
         subExpressions = []
         for fieldName, searchTerm, matchFlags, matchType in fields:
+            try:
+                field = self.fieldName.lookupByName(fieldName)
+            except ValueError:
+                log.debug(
+                    "Unsupported field name: {fieldName}",
+                    fieldName=fieldName
+                )
+                continue
             subExpression = MatchExpression(
-                self.fieldName.lookupByName(fieldName),
+                field,
                 searchTerm,
                 matchType,
                 matchFlags
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140318/d68f375b/attachment.html>


More information about the calendarserver-changes mailing list