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

source_changes at macosforge.org source_changes at macosforge.org
Wed Feb 13 19:00:56 PST 2013


Revision: 10724
          http://trac.calendarserver.org//changeset/10724
Author:   wsanchez at apple.com
Date:     2013-02-13 19:00:56 -0800 (Wed, 13 Feb 2013)
Log Message:
-----------
Code compression, yo

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-14 02:42:28 UTC (rev 10723)
+++ CalendarServer/trunk/twext/who/test/test_xml.py	2013-02-14 03:00:56 UTC (rev 10724)
@@ -156,16 +156,23 @@
 
 class BaseTest(object):
     def _testService(self, xmlData=None):
-        if not hasattr(self, "_service"):
-            if xmlData is None:
-                xmlData = testXMLConfig
+        if xmlData is None:
+            xmlData = testXMLConfig
 
-            filePath = FilePath(self.mktemp())
-            filePath.setContent(xmlData)
+        filePath = FilePath(self.mktemp())
+        filePath.setContent(xmlData)
 
-            self._service = DirectoryService(filePath)
+        class TestService(DirectoryService):
+            def query(self, field, value, matchType=MatchType.equals, flags=None):
+                name = getattr(self.fieldName, field)
+                assert name is not None
+                return DirectoryQueryMatchExpression(
+                    name, value,
+                    matchType=matchType,
+                    flags=flags,
+                )
 
-        return self._service
+        return TestService(filePath)
 
 
 
@@ -173,11 +180,18 @@
     def test_repr(self):
         service = self._testService()
 
-        self.assertEquals(repr(service), "<DirectoryService (not loaded)>")
+        self.assertEquals(repr(service), "<TestService (not loaded)>")
         service.loadRecords()
-        self.assertEquals(repr(service), "<DirectoryService 'xyzzy'>")
+        self.assertEquals(repr(service), "<TestService 'xyzzy'>")
 
 
+    def assertRecords(self, records, uids):
+        self.assertEquals(
+            frozenset((record.uid for record in records)),
+            frozenset((uids)),
+        )
+
+
     def test_realmNameImmutable(self):
         def setRealmName():
             service = self._testService()
@@ -275,9 +289,8 @@
         self.assertEquals(set(records), set())
 
         records = (yield service.recordsWithRecordType(service.recordType.user))
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set((
+        self.assertRecords(records,
+            (
                 "__wsanchez__",
                 "__glyph__",
                 "__sagen__",
@@ -287,17 +300,16 @@
                 "__dreid__",
                 "__alyssa__",
                 "__joe__",
-            )),
+            ),
         )
 
         records = (yield service.recordsWithRecordType(service.recordType.group))
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set((
+        self.assertRecords(records,
+            (
                 "__calendar-dev__",
                 "__twisted__",
                 "__developers__",
-            ))
+            ),
         )
 
 
@@ -320,22 +332,13 @@
         service = self._testService()
 
         records = (yield service.recordsWithEmailAddress("wsanchez at bitbucket.calendarserver.org"))
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__wsanchez__",)),
-        )
+        self.assertRecords(records, ("__wsanchez__",))
 
         records = (yield service.recordsWithEmailAddress("wsanchez at devnull.twistedmatrix.com"))
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__wsanchez__",)),
-        )
+        self.assertRecords(records, ("__wsanchez__",))
 
         records = (yield service.recordsWithEmailAddress("shared at example.com"))
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__sagen__", "__dre__")),
-        )
+        self.assertRecords(records, ("__sagen__", "__dre__"))
 
 
     @inlineCallbacks
@@ -343,21 +346,12 @@
         service = self._testService()
         records = yield service.recordsFromQuery(
             (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.emailAddresses,
-                    "shared at example.com",
-                ),
-                DirectoryQueryMatchExpression(
-                    service.fieldName.shortNames,
-                    "sagen",
-                ),
+                service.query("emailAddresses", "shared at example.com"),
+                service.query("shortNames", "sagen"),
             ),
             operand=Operand.AND
         )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__sagen__",)),
-        )
+        self.assertRecords(records, ("__sagen__",))
 
 
     @inlineCallbacks
@@ -365,21 +359,12 @@
         service = self._testService()
         records = yield service.recordsFromQuery(
             (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.emailAddresses,
-                    "shared at example.com",
-                ),
-                DirectoryQueryMatchExpression(
-                    service.fieldName.shortNames,
-                    "wsanchez",
-                ),
+                service.query("emailAddresses", "shared at example.com"),
+                service.query("shortNames", "wsanchez"),
             ),
             operand=Operand.OR
         )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__sagen__", "__dre__", "__wsanchez__")),
-        )
+        self.assertRecords(records, ("__sagen__", "__dre__", "__wsanchez__"))
 
 
     @inlineCallbacks
@@ -387,126 +372,92 @@
         service = self._testService()
         records = yield service.recordsFromQuery(
             (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.emailAddresses,
-                    "shared at example.com",
-                ),
-                DirectoryQueryMatchExpression(
-                    service.fieldName.shortNames,
-                    "sagen",
-                    flags = QueryFlags.NOT,
-                ),
+                service.query("emailAddresses", "shared at example.com"),
+                service.query("shortNames", "sagen", flags=QueryFlags.NOT),
             ),
             operand=Operand.AND
         )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__dre__",)),
-        )
+        self.assertRecords(records, ("__dre__",))
 
     test_queryNot.todo = "Not implemented."
 
 
     @inlineCallbacks
-    def test_queryCaseInsensitive(self):
+    def test_queryNotNoIndex(self):
         service = self._testService()
         records = yield service.recordsFromQuery(
             (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.shortNames,
-                    "SagEn",
-                    flags = QueryFlags.caseInsensitive,
-                ),
+                service.query("emailAddresses", "shared at example.com"),
+                service.query("fullNames", "Andre LaBranche", flags=QueryFlags.NOT),
             ),
+            operand=Operand.AND
         )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__sagen__",)),
-        )
+        self.assertRecords(records, ("__sagen__",))
 
+    test_queryNotNoIndex.todo = "Not implemented."
+
+
+    @inlineCallbacks
+    def test_queryCaseInsensitive(self):
+        service = self._testService()
+        records = yield service.recordsFromQuery((
+            service.query("shortNames", "SagEn", flags=QueryFlags.caseInsensitive),
+        ))
+        self.assertRecords(records, ("__sagen__",))
+
     test_queryCaseInsensitive.todo = "Not implemented."
 
 
     @inlineCallbacks
-    def test_noIndexQueryStartsWith(self):
+    def test_queryStartsWithNoIndex(self):
         service = self._testService()
-        records = yield service.recordsFromQuery(
-            (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.fullNames,
-                    "Wilfredo",
-                    matchType = MatchType.startsWith,
-                ),
-            ),
-        )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__wsanchez__",)),
-        )
+        records = yield service.recordsFromQuery((
+            service.query("fullNames", "Wilfredo", matchType=MatchType.startsWith),
+        ))
+        self.assertRecords(records, ("__wsanchez__",))
 
-    test_noIndexQueryStartsWith.todo = "Not implemented."
+    test_queryStartsWithNoIndex.todo = "Not implemented."
 
 
     @inlineCallbacks
-    def test_noIndexQueryStartsWithCaseInsensitive(self):
+    def test_queryStartsWithCaseInsensitiveNoIndex(self):
         service = self._testService()
-        records = yield service.recordsFromQuery(
-            (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.fullNames,
-                    "wilfrEdo",
-                    matchType = MatchType.startsWith,
-                    flags = QueryFlags.caseInsensitive,
-                ),
+        records = yield service.recordsFromQuery((
+            service.query(
+                "fullNames", "wilfrEdo",
+                matchType=MatchType.startsWith,
+                flags=QueryFlags.caseInsensitive,
             ),
-        )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__wsanchez__",)),
-        )
+        ))
+        self.assertRecords(records, ("__wsanchez__",))
 
-    test_noIndexQueryStartsWithCaseInsensitive.todo = "Not implemented."
+    test_queryStartsWithCaseInsensitiveNoIndex.todo = "Not implemented."
 
 
     @inlineCallbacks
-    def test_noIndexQueryContains(self):
+    def test_queryContainsNoIndex(self):
         service = self._testService()
-        records = yield service.recordsFromQuery(
-            (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.fullNames,
-                    "fredo",
-                    matchType = MatchType.contains,
-                ),
-            ),
-        )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__wsanchez__",)),
-        )
+        records = yield service.recordsFromQuery((
+            service.query("fullNames", "fredo", matchType=MatchType.contains),
+        ))
+        self.assertRecords(records, ("__wsanchez__",))
 
-    test_noIndexQueryContains.todo = "Not implemented."
+    test_queryContainsNoIndex.todo = "Not implemented."
 
 
     @inlineCallbacks
-    def test_noIndexQueryContainsCaseInsensitive(self):
+    def test_queryContainsCaseInsensitiveNoIndex(self):
         service = self._testService()
-        records = yield service.recordsFromQuery(
-            (
-                DirectoryQueryMatchExpression(
-                    service.fieldName.fullNames,
-                    "frEdo",
-                    matchType = MatchType.contains,
-                    flags = QueryFlags.caseInsensitive,
-                ),
+        records = yield service.recordsFromQuery((
+            service.query(
+                "fullNames", "frEdo",
+                matchType=MatchType.contains,
+                flags=QueryFlags.caseInsensitive,
             ),
-        )
-        self.assertEquals(
-            set((record.uid for record in records)),
-            set(("__wsanchez__",)),
-        )
+        ))
+        self.assertRecords(records, ("__wsanchez__",))
 
-    test_noIndexQueryContainsCaseInsensitive.todo = "Not implemented."
+    test_queryContainsCaseInsensitiveNoIndex.todo = "Not implemented."
 
 
     def test_unknownRecordTypesClean(self):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130213/fd3feee0/attachment-0001.html>


More information about the calendarserver-changes mailing list