[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