[CalendarServer-changes] [10705] CalendarServer/trunk/twext/who/test/test_xml.py

source_changes at macosforge.org source_changes at macosforge.org
Tue Feb 12 13:44:50 PST 2013


Revision: 10705
          http://trac.calendarserver.org//changeset/10705
Author:   wsanchez at apple.com
Date:     2013-02-12 13:44:50 -0800 (Tue, 12 Feb 2013)
Log Message:
-----------
Tests for flags

Modified Paths:
--------------
    CalendarServer/trunk/twext/who/test/test_xml.py

Modified: CalendarServer/trunk/twext/who/test/test_xml.py
===================================================================
--- CalendarServer/trunk/twext/who/test/test_xml.py	2013-02-12 21:44:32 UTC (rev 10704)
+++ CalendarServer/trunk/twext/who/test/test_xml.py	2013-02-12 21:44:50 UTC (rev 10705)
@@ -24,6 +24,8 @@
 from twisted.internet.defer import inlineCallbacks
 
 from twext.who.idirectory import NoSuchRecordError
+from twext.who.idirectory import DirectoryQueryMatchExpression
+from twext.who.idirectory import Operand, QueryFlags
 from twext.who.xml import ParseError
 from twext.who.xml import DirectoryService, DirectoryRecord
 
@@ -336,6 +338,95 @@
         )
 
 
+    @inlineCallbacks
+    def test_queryAnd(self):
+        service = self._testService()
+        records = yield service.recordsFromQuery(
+            (
+                DirectoryQueryMatchExpression(
+                    service.fieldName.emailAddresses,
+                    "shared at example.com",
+                ),
+                DirectoryQueryMatchExpression(
+                    service.fieldName.shortNames,
+                    "sagen",
+                ),
+            ),
+            operand=Operand.AND
+        )
+        self.assertEquals(
+            set((record.uid for record in records)),
+            set(("__sagen__",)),
+        )
+
+
+    @inlineCallbacks
+    def test_queryOr(self):
+        service = self._testService()
+        records = yield service.recordsFromQuery(
+            (
+                DirectoryQueryMatchExpression(
+                    service.fieldName.emailAddresses,
+                    "shared at example.com",
+                ),
+                DirectoryQueryMatchExpression(
+                    service.fieldName.shortNames,
+                    "wsanchez",
+                ),
+            ),
+            operand=Operand.OR
+        )
+        self.assertEquals(
+            set((record.uid for record in records)),
+            set(("__sagen__", "__dre__", "__wsanchez__")),
+        )
+
+
+    @inlineCallbacks
+    def test_queryNot(self):
+        service = self._testService()
+        records = yield service.recordsFromQuery(
+            (
+                DirectoryQueryMatchExpression(
+                    service.fieldName.emailAddresses,
+                    "shared at example.com",
+                ),
+                DirectoryQueryMatchExpression(
+                    service.fieldName.shortNames,
+                    "sagen",
+                    flags = QueryFlags.NOT,
+                ),
+            ),
+            operand=Operand.AND
+        )
+        self.assertEquals(
+            set((record.uid for record in records)),
+            set(("__dre__",)),
+        )
+
+    test_queryNot.todo = "Not implemented."
+
+
+    @inlineCallbacks
+    def test_queryCaseInsensitive(self):
+        service = self._testService()
+        records = yield service.recordsFromQuery(
+            (
+                DirectoryQueryMatchExpression(
+                    service.fieldName.shortNames,
+                    "SagEn",
+                    flags = QueryFlags.caseInsensitive,
+                ),
+            ),
+        )
+        self.assertEquals(
+            set((record.uid for record in records)),
+            set(("__sagen__",)),
+        )
+
+    test_queryCaseInsensitive.todo = "Not implemented."
+
+
     def test_unknownRecordTypesClean(self):
         service = self._testService()
         self.assertEquals(set(service.unknownRecordTypes), set())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130212/8dc75d08/attachment.html>


More information about the calendarserver-changes mailing list