[CalendarServer-changes] [10805] CalendarServer/trunk/twext/who/test
source_changes at macosforge.org
source_changes at macosforge.org
Mon Feb 25 11:58:17 PST 2013
Revision: 10805
http://trac.calendarserver.org//changeset/10805
Author: wsanchez at apple.com
Date: 2013-02-25 11:58:17 -0800 (Mon, 25 Feb 2013)
Log Message:
-----------
More aggregate tests
Modified Paths:
--------------
CalendarServer/trunk/twext/who/test/test_aggregate.py
CalendarServer/trunk/twext/who/test/test_xml.py
Modified: CalendarServer/trunk/twext/who/test/test_aggregate.py
===================================================================
--- CalendarServer/trunk/twext/who/test/test_aggregate.py 2013-02-25 19:58:00 UTC (rev 10804)
+++ CalendarServer/trunk/twext/who/test/test_aggregate.py 2013-02-25 19:58:17 UTC (rev 10805)
@@ -19,12 +19,14 @@
"""
from twisted.python.components import proxyForInterface
+from twisted.trial import unittest
-from twext.who.idirectory import IDirectoryService
+from twext.who.idirectory import IDirectoryService, DirectoryConfigurationError
from twext.who.aggregate import DirectoryService
+from twext.who.util import ConstantsContainer
from twext.who.test import test_directory, test_xml
-from twext.who.test.test_xml import QueryMixIn, xmlService
+from twext.who.test.test_xml import QueryMixIn, xmlService, TestService as XMLTestService
@@ -49,8 +51,8 @@
return TestService("xyzzy", services)
- def xmlService(self, xmlData=None):
- return xmlService(self.mktemp(), xmlData)
+ def xmlService(self, xmlData=None, serviceClass=None):
+ return xmlService(self.mktemp(), xmlData, serviceClass)
@@ -68,3 +70,170 @@
class DirectoryServiceImmutableTest(BaseTest, test_directory.DirectoryServiceImmutableTest):
pass
+
+
+
+class AggregatedBaseTest(BaseTest):
+ def service(self):
+ class UsersDirectoryService(XMLTestService):
+ recordType = ConstantsContainer((XMLTestService.recordType.user,))
+
+ class GroupsDirectoryService(XMLTestService):
+ recordType = ConstantsContainer((XMLTestService.recordType.group,))
+
+ usersService = self.xmlService(testXMLConfigUsers, UsersDirectoryService)
+ groupsService = self.xmlService(testXMLConfigGroups, GroupsDirectoryService)
+
+ return BaseTest.service(self, (usersService, groupsService))
+
+
+
+class DirectoryServiceAggregatedBaseTest(AggregatedBaseTest, DirectoryServiceBaseTest):
+ pass
+
+
+
+class DirectoryServiceAggregatedQueryTest(AggregatedBaseTest, test_xml.DirectoryServiceQueryTest):
+ pass
+
+
+
+class DirectoryServiceAggregatedImmutableTest(AggregatedBaseTest, test_directory.DirectoryServiceImmutableTest):
+ pass
+
+
+
+class DirectoryServiceTests(BaseTest, unittest.TestCase):
+ def test_conflictingRecordTypes(self):
+ self.assertRaises(
+ DirectoryConfigurationError,
+ BaseTest.service, self,
+ (self.xmlService(), self.xmlService(testXMLConfigUsers)),
+ )
+
+
+
+testXMLConfigUsers = """<?xml version="1.0" encoding="utf-8"?>
+
+<directory realm="Users Realm">
+
+ <record type="user">
+ <uid>__wsanchez__</uid>
+ <short-name>wsanchez</short-name>
+ <short-name>wilfredo_sanchez</short-name>
+ <full-name>Wilfredo Sanchez</full-name>
+ <password>zehcnasw</password>
+ <email>wsanchez at bitbucket.calendarserver.org</email>
+ <email>wsanchez at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__glyph__</uid>
+ <short-name>glyph</short-name>
+ <full-name>Glyph Lefkowitz</full-name>
+ <password>hpylg</password>
+ <email>glyph at bitbucket.calendarserver.org</email>
+ <email>glyph at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__sagen__</uid>
+ <short-name>sagen</short-name>
+ <full-name>Morgen Sagen</full-name>
+ <password>negas</password>
+ <email>sagen at bitbucket.calendarserver.org</email>
+ <email>shared at example.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__cdaboo__</uid>
+ <short-name>cdaboo</short-name>
+ <full-name>Cyrus Daboo</full-name>
+ <password>suryc</password>
+ <email>cdaboo at bitbucket.calendarserver.org</email>
+ </record>
+
+ <record type="user">
+ <uid>__dre__</uid>
+ <short-name>dre</short-name>
+ <full-name>Andre LaBranche</full-name>
+ <password>erd</password>
+ <email>dre at bitbucket.calendarserver.org</email>
+ <email>shared at example.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__exarkun__</uid>
+ <short-name>exarkun</short-name>
+ <full-name>Jean-Paul Calderone</full-name>
+ <password>nucraxe</password>
+ <email>exarkun at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__dreid__</uid>
+ <short-name>dreid</short-name>
+ <full-name>David Reid</full-name>
+ <password>dierd</password>
+ <email>dreid at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record> <!-- type defaults to "user" -->
+ <uid>__joe__</uid>
+ <short-name>joe</short-name>
+ <full-name>Joe Schmoe</full-name>
+ <password>eoj</password>
+ <email>joe at example.com</email>
+ </record>
+
+ <record> <!-- type defaults to "user" -->
+ <uid>__alyssa__</uid>
+ <short-name>alyssa</short-name>
+ <full-name>Alyssa P. Hacker</full-name>
+ <password>assyla</password>
+ <email>alyssa at example.com</email>
+ </record>
+
+</directory>
+"""
+
+
+testXMLConfigGroups = """<?xml version="1.0" encoding="utf-8"?>
+
+<directory realm="Groups Realm">
+
+ <record type="group">
+ <uid>__calendar-dev__</uid>
+ <short-name>calendar-dev</short-name>
+ <full-name>Calendar Server developers</full-name>
+ <email>dev at bitbucket.calendarserver.org</email>
+ <member-uid>__wsanchez__</member-uid>
+ <member-uid>__glyph__</member-uid>
+ <member-uid>__sagen__</member-uid>
+ <member-uid>__cdaboo__</member-uid>
+ <member-uid>__dre__</member-uid>
+ </record>
+
+ <record type="group">
+ <uid>__twisted__</uid>
+ <short-name>twisted</short-name>
+ <full-name>Twisted Matrix Laboratories</full-name>
+ <email>hack at devnull.twistedmatrix.com</email>
+ <member-uid>__wsanchez__</member-uid>
+ <member-uid>__glyph__</member-uid>
+ <member-uid>__exarkun__</member-uid>
+ <member-uid>__dreid__</member-uid>
+ <member-uid>__dre__</member-uid>
+ </record>
+
+ <record type="group">
+ <uid>__developers__</uid>
+ <short-name>developers</short-name>
+ <full-name>All Developers</full-name>
+ <member-uid>__calendar-dev__</member-uid>
+ <member-uid>__twisted__</member-uid>
+ <member-uid>__alyssa__</member-uid>
+ </record>
+
+</directory>
+"""
Modified: CalendarServer/trunk/twext/who/test/test_xml.py
===================================================================
--- CalendarServer/trunk/twext/who/test/test_xml.py 2013-02-25 19:58:00 UTC (rev 10804)
+++ CalendarServer/trunk/twext/who/test/test_xml.py 2013-02-25 19:58:17 UTC (rev 10805)
@@ -34,127 +34,6 @@
-xmlRealmName = "Test Realm"
-
-testXMLConfig = """<?xml version="1.0" encoding="utf-8"?>
-
-<directory realm="xyzzy">
-
- <record type="user">
- <uid>__wsanchez__</uid>
- <short-name>wsanchez</short-name>
- <short-name>wilfredo_sanchez</short-name>
- <full-name>Wilfredo Sanchez</full-name>
- <password>zehcnasw</password>
- <email>wsanchez at bitbucket.calendarserver.org</email>
- <email>wsanchez at devnull.twistedmatrix.com</email>
- </record>
-
- <record type="user">
- <uid>__glyph__</uid>
- <short-name>glyph</short-name>
- <full-name>Glyph Lefkowitz</full-name>
- <password>hpylg</password>
- <email>glyph at bitbucket.calendarserver.org</email>
- <email>glyph at devnull.twistedmatrix.com</email>
- </record>
-
- <record type="user">
- <uid>__sagen__</uid>
- <short-name>sagen</short-name>
- <full-name>Morgen Sagen</full-name>
- <password>negas</password>
- <email>sagen at bitbucket.calendarserver.org</email>
- <email>shared at example.com</email>
- </record>
-
- <record type="user">
- <uid>__cdaboo__</uid>
- <short-name>cdaboo</short-name>
- <full-name>Cyrus Daboo</full-name>
- <password>suryc</password>
- <email>cdaboo at bitbucket.calendarserver.org</email>
- </record>
-
- <record type="user">
- <uid>__dre__</uid>
- <short-name>dre</short-name>
- <full-name>Andre LaBranche</full-name>
- <password>erd</password>
- <email>dre at bitbucket.calendarserver.org</email>
- <email>shared at example.com</email>
- </record>
-
- <record type="user">
- <uid>__exarkun__</uid>
- <short-name>exarkun</short-name>
- <full-name>Jean-Paul Calderone</full-name>
- <password>nucraxe</password>
- <email>exarkun at devnull.twistedmatrix.com</email>
- </record>
-
- <record type="user">
- <uid>__dreid__</uid>
- <short-name>dreid</short-name>
- <full-name>David Reid</full-name>
- <password>dierd</password>
- <email>dreid at devnull.twistedmatrix.com</email>
- </record>
-
- <record> <!-- type defaults to "user" -->
- <uid>__joe__</uid>
- <short-name>joe</short-name>
- <full-name>Joe Schmoe</full-name>
- <password>eoj</password>
- <email>joe at example.com</email>
- </record>
-
- <record>
- <uid>__alyssa__</uid>
- <short-name>alyssa</short-name>
- <full-name>Alyssa P. Hacker</full-name>
- <password>assyla</password>
- <email>alyssa at example.com</email>
- </record>
-
- <record type="group">
- <uid>__calendar-dev__</uid>
- <short-name>calendar-dev</short-name>
- <full-name>Calendar Server developers</full-name>
- <email>dev at bitbucket.calendarserver.org</email>
- <member-uid>__wsanchez__</member-uid>
- <member-uid>__glyph__</member-uid>
- <member-uid>__sagen__</member-uid>
- <member-uid>__cdaboo__</member-uid>
- <member-uid>__dre__</member-uid>
- </record>
-
- <record type="group">
- <uid>__twisted__</uid>
- <short-name>twisted</short-name>
- <full-name>Twisted Matrix Laboratories</full-name>
- <email>hack at devnull.twistedmatrix.com</email>
- <member-uid>__wsanchez__</member-uid>
- <member-uid>__glyph__</member-uid>
- <member-uid>__exarkun__</member-uid>
- <member-uid>__dreid__</member-uid>
- <member-uid>__dre__</member-uid>
- </record>
-
- <record type="group">
- <uid>__developers__</uid>
- <short-name>developers</short-name>
- <full-name>All Developers</full-name>
- <member-uid>__calendar-dev__</member-uid>
- <member-uid>__twisted__</member-uid>
- <member-uid>__alyssa__</member-uid>
- </record>
-
-</directory>
-"""
-
-
-
class BaseTest(unittest.TestCase):
def service(self, xmlData=None):
return xmlService(self.mktemp(), xmlData)
@@ -846,11 +725,133 @@
-def xmlService(tmp, xmlData=None):
+def xmlService(tmp, xmlData=None, serviceClass=None):
if xmlData is None:
xmlData = testXMLConfig
+ if serviceClass is None:
+ serviceClass = TestService
+
filePath = FilePath(tmp)
filePath.setContent(xmlData)
- return TestService(filePath)
+ return serviceClass(filePath)
+
+
+
+testXMLConfig = """<?xml version="1.0" encoding="utf-8"?>
+
+<directory realm="xyzzy">
+
+ <record type="user">
+ <uid>__wsanchez__</uid>
+ <short-name>wsanchez</short-name>
+ <short-name>wilfredo_sanchez</short-name>
+ <full-name>Wilfredo Sanchez</full-name>
+ <password>zehcnasw</password>
+ <email>wsanchez at bitbucket.calendarserver.org</email>
+ <email>wsanchez at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__glyph__</uid>
+ <short-name>glyph</short-name>
+ <full-name>Glyph Lefkowitz</full-name>
+ <password>hpylg</password>
+ <email>glyph at bitbucket.calendarserver.org</email>
+ <email>glyph at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__sagen__</uid>
+ <short-name>sagen</short-name>
+ <full-name>Morgen Sagen</full-name>
+ <password>negas</password>
+ <email>sagen at bitbucket.calendarserver.org</email>
+ <email>shared at example.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__cdaboo__</uid>
+ <short-name>cdaboo</short-name>
+ <full-name>Cyrus Daboo</full-name>
+ <password>suryc</password>
+ <email>cdaboo at bitbucket.calendarserver.org</email>
+ </record>
+
+ <record type="user">
+ <uid>__dre__</uid>
+ <short-name>dre</short-name>
+ <full-name>Andre LaBranche</full-name>
+ <password>erd</password>
+ <email>dre at bitbucket.calendarserver.org</email>
+ <email>shared at example.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__exarkun__</uid>
+ <short-name>exarkun</short-name>
+ <full-name>Jean-Paul Calderone</full-name>
+ <password>nucraxe</password>
+ <email>exarkun at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record type="user">
+ <uid>__dreid__</uid>
+ <short-name>dreid</short-name>
+ <full-name>David Reid</full-name>
+ <password>dierd</password>
+ <email>dreid at devnull.twistedmatrix.com</email>
+ </record>
+
+ <record> <!-- type defaults to "user" -->
+ <uid>__joe__</uid>
+ <short-name>joe</short-name>
+ <full-name>Joe Schmoe</full-name>
+ <password>eoj</password>
+ <email>joe at example.com</email>
+ </record>
+
+ <record> <!-- type defaults to "user" -->
+ <uid>__alyssa__</uid>
+ <short-name>alyssa</short-name>
+ <full-name>Alyssa P. Hacker</full-name>
+ <password>assyla</password>
+ <email>alyssa at example.com</email>
+ </record>
+
+ <record type="group">
+ <uid>__calendar-dev__</uid>
+ <short-name>calendar-dev</short-name>
+ <full-name>Calendar Server developers</full-name>
+ <email>dev at bitbucket.calendarserver.org</email>
+ <member-uid>__wsanchez__</member-uid>
+ <member-uid>__glyph__</member-uid>
+ <member-uid>__sagen__</member-uid>
+ <member-uid>__cdaboo__</member-uid>
+ <member-uid>__dre__</member-uid>
+ </record>
+
+ <record type="group">
+ <uid>__twisted__</uid>
+ <short-name>twisted</short-name>
+ <full-name>Twisted Matrix Laboratories</full-name>
+ <email>hack at devnull.twistedmatrix.com</email>
+ <member-uid>__wsanchez__</member-uid>
+ <member-uid>__glyph__</member-uid>
+ <member-uid>__exarkun__</member-uid>
+ <member-uid>__dreid__</member-uid>
+ <member-uid>__dre__</member-uid>
+ </record>
+
+ <record type="group">
+ <uid>__developers__</uid>
+ <short-name>developers</short-name>
+ <full-name>All Developers</full-name>
+ <member-uid>__calendar-dev__</member-uid>
+ <member-uid>__twisted__</member-uid>
+ <member-uid>__alyssa__</member-uid>
+ </record>
+
+</directory>
+"""
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130225/ea79be05/attachment-0001.html>
More information about the calendarserver-changes
mailing list