[CalendarServer-changes] [11944] CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/ directory
source_changes at macosforge.org
source_changes at macosforge.org
Wed Mar 12 11:20:18 PDT 2014
Revision: 11944
http://trac.calendarserver.org//changeset/11944
Author: gaya at apple.com
Date: 2013-11-13 19:37:20 -0800 (Wed, 13 Nov 2013)
Log Message:
-----------
add twistedcaldav.directory.test.test_directory.DirectoryRecordTests.test_attendee and fix DirectoryRecord.attendee()
Modified Paths:
--------------
CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/directory.py
CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/test/test_directory.py
Modified: CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/directory.py
===================================================================
--- CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/directory.py 2013-11-13 22:32:32 UTC (rev 11943)
+++ CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/directory.py 2013-11-14 03:37:20 UTC (rev 11944)
@@ -1531,17 +1531,17 @@
if "PARTSTAT" not in params:
params["PARTSTAT"] = "NEEDS-ACTION"
if "CN"not in params:
- if self.fullName():
- params["CN"] = self.fullName()
+ if self.fullName:
+ params["CN"] = self.fullName
if "EMAIL" not in params:
- if self.emailAddresses():
- params["EMAIL"] = self.emailAddresses()[0]
+ if self.emailAddresses:
+ params["EMAIL"] = list(self.emailAddresses)[0]
if "CUTYPE" not in params:
cuType = self.getCUType()
if cuType is not "INDIVIDUAL":
params["CUTYPE"] = cuType
- return Property("ATTENDEE", "urn:uuid:" + self.uid(), params=params)
+ return Property("ATTENDEE", "urn:uuid:" + self.uid, params=params)
Modified: CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/test/test_directory.py
===================================================================
--- CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/test/test_directory.py 2013-11-13 22:32:32 UTC (rev 11943)
+++ CalendarServer/branches/users/sagen/groupcacher/twistedcaldav/directory/test/test_directory.py 2013-11-14 03:37:20 UTC (rev 11944)
@@ -15,6 +15,7 @@
##
+
from twext.who.groups import schedulePolledGroupCachingUpdate
from twisted.internet.defer import inlineCallbacks
from twisted.python.filepath import FilePath
@@ -29,9 +30,7 @@
from twistedcaldav.test.util import TestCase
from twistedcaldav.test.util import xmlFile, augmentsFile, proxiesFile, dirTest
from txdav.common.datastore.test.util import buildStore
-
import cPickle as pickle
-import uuid
def StubCheckSACL(cls, username, service):
services = {
@@ -1094,24 +1093,48 @@
class DirectoryRecordTests(TestCase):
- """
- Test L{DirectoryRecord} apis.
- """
+ @inlineCallbacks
def setUp(self):
- self.service = DirectoryService()
- self.service.setRealm("test")
- self.service.baseGUID = "0E8E6EC2-8E52-4FF3-8F62-6F398B08A498"
+ super(DirectoryRecordTests, self).setUp()
+ self.directoryFixture.addDirectoryService(XMLDirectoryService(
+ {
+ 'xmlFile' : xmlFile,
+ 'augmentService' :
+ augment.AugmentXMLDB(xmlFiles=(augmentsFile.path,)),
+ }
+ ))
+ calendaruserproxy.ProxyDBService = calendaruserproxy.ProxySqliteDB("proxies.sqlite")
+ # Set up a principals hierarchy for each service we're testing with
+ self.principalRootResources = {}
+ name = self.directoryService.__class__.__name__
+ url = "/" + name + "/"
+
+ provisioningResource = DirectoryPrincipalProvisioningResource(url, self.directoryService)
+
+ self.site.resource.putChild(name, provisioningResource)
+
+ self.principalRootResources[self.directoryService.__class__.__name__] = provisioningResource
+
+ yield XMLCalendarUserProxyLoader(proxiesFile.path).updateProxyDB()
+
+
+ def tearDown(self):
+ """ Empty the proxy db between tests """
+ return calendaruserproxy.ProxyDBService.clean() #@UndefinedVariable
+
+
def test_cacheToken(self):
"""
Test that DirectoryRecord.cacheToken is different for different records, and its value changes
as attributes on the record change.
"""
- record1 = DirectoryRecord(self.service, "users", str(uuid.uuid4()), shortNames=("testing1",))
- record2 = DirectoryRecord(self.service, "users", str(uuid.uuid4()), shortNames=("testing2",))
+ records = list((yield self.directoryService.listRecords("users")))
+ record1 = records[0]
+ record2 = records[1]
self.assertNotEquals(record1.cacheToken(), record2.cacheToken())
cache1 = record1.cacheToken()
@@ -1121,3 +1144,61 @@
cache1 = record1.cacheToken()
record1.enabledForCalendaring = True
self.assertNotEquals(cache1, record1.cacheToken())
+
+
+ @inlineCallbacks
+ def test_attendee(self):
+ """
+ check that attendee property is correct
+ """
+ for recordType in self.directoryService.recordTypes():
+ records = yield self.directoryService.listRecords(recordType)
+ for record in records:
+ record.attendee()
+
+ record = yield self.directoryService.recordWithShortName("users", "user01")
+ attendee = record.attendee(params={"PARTSTAT": "ACCEPTED"})
+ self.assertEquals(attendee.name(), "ATTENDEE")
+ self.assertEquals(attendee.value(), "urn:uuid:user01")
+ self.assertEquals(attendee.parameterNames(), set(['PARTSTAT', 'EMAIL', 'CN']))
+ self.assertEquals(attendee.parameterValue("CN"), "c4ca4238a0b923820dcc509a6f75849bc4c User 01")
+ self.assertEquals(attendee.parameterValue("EMAIL"), "c4ca4238a0 at example.com")
+ self.assertEquals(attendee.parameterValue("PARTSTAT"), "ACCEPTED")
+
+ record = yield self.directoryService.recordWithShortName("users", "user02")
+ attendee = record.attendee(params={"MEMBER": "urn:uuid:group02"})
+ self.assertEquals(attendee.name(), "ATTENDEE")
+ self.assertEquals(attendee.value(), "urn:uuid:user02")
+ self.assertEquals(attendee.parameterNames(), set(['MEMBER', 'PARTSTAT', 'EMAIL', 'CN']))
+ self.assertEquals(attendee.parameterValue("CN"), "c81e728d9d4c2f636f067f89cc14862cc81 User 02")
+ self.assertEquals(attendee.parameterValue("EMAIL"), "c81e728d9d at example.com")
+ self.assertEquals(attendee.parameterValue("PARTSTAT"), "NEEDS-ACTION")
+ self.assertEquals(attendee.parameterValue("MEMBER"), "urn:uuid:group02")
+
+ record = yield self.directoryService.recordWithShortName("groups", "managers")
+ attendee = record.attendee()
+ self.assertEquals(attendee.name(), "ATTENDEE")
+ self.assertEquals(attendee.value(), "urn:uuid:9FF60DAD-0BDE-4508-8C77-15F0CA5C8DD1")
+ self.assertEquals(attendee.parameterNames(), set(['CUTYPE', 'PARTSTAT', 'CN']))
+ self.assertEquals(attendee.parameterValue("CN"), "Managers")
+ self.assertEquals(attendee.parameterValue("PARTSTAT"), "NEEDS-ACTION")
+ self.assertEquals(attendee.parameterValue("CUTYPE"), "GROUP")
+
+ record = yield self.directoryService.recordWithShortName("locations", "mercury")
+ attendee = record.attendee()
+ self.assertEquals(attendee.name(), "ATTENDEE")
+ self.assertEquals(attendee.value(), "urn:uuid:mercury")
+ self.assertEquals(attendee.parameterNames(), set(['CUTYPE', 'PARTSTAT', 'EMAIL', 'CN']))
+ self.assertEquals(attendee.parameterValue("CN"), "Mercury Seven")
+ self.assertEquals(attendee.parameterValue("EMAIL"), "mercury at example.com")
+ self.assertEquals(attendee.parameterValue("PARTSTAT"), "NEEDS-ACTION")
+ self.assertEquals(attendee.parameterValue("CUTYPE"), "ROOM")
+
+ record = yield self.directoryService.recordWithShortName("resources", "ftlcpu")
+ attendee = record.attendee()
+ self.assertEquals(attendee.name(), "ATTENDEE")
+ self.assertEquals(attendee.value(), "urn:uuid:ftlcpu")
+ self.assertEquals(attendee.parameterNames(), set(['CUTYPE', 'PARTSTAT', 'EMAIL', 'CN']))
+ self.assertEquals(attendee.parameterValue("CN"), "Faster-Than-Light Microprocessor")
+ self.assertEquals(attendee.parameterValue("PARTSTAT"), "NEEDS-ACTION")
+ self.assertEquals(attendee.parameterValue("CUTYPE"), "RESOURCE")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140312/e6ab2b19/attachment.html>
More information about the calendarserver-changes
mailing list