[CalendarServer-changes] [6363] CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/ datastore/test
source_changes at macosforge.org
source_changes at macosforge.org
Thu Sep 23 18:44:24 PDT 2010
Revision: 6363
http://trac.macosforge.org/projects/calendarserver/changeset/6363
Author: glyph at apple.com
Date: 2010-09-23 18:44:20 -0700 (Thu, 23 Sep 2010)
Log Message:
-----------
more async calendar stuff
Modified Paths:
--------------
CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/common.py
CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_file.py
CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_sql.py
Modified: CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/common.py
===================================================================
--- CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/common.py 2010-09-24 01:12:36 UTC (rev 6362)
+++ CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/common.py 2010-09-24 01:44:20 UTC (rev 6363)
@@ -174,11 +174,14 @@
raise NotImplementedError()
+ @inlineCallbacks
def homeUnderTest(self):
"""
Get the calendar home detailed by C{requirements['home1']}.
"""
- return self.transactionUnderTest().calendarHomeWithUID("home1")
+ returnValue(
+ (yield self.transactionUnderTest().calendarHomeWithUID("home1"))
+ )
@inlineCallbacks
@@ -221,12 +224,13 @@
self.assertProvides(ICalendarTransaction, txn)
+ @inlineCallbacks
def test_homeProvides(self):
"""
The calendar homes generated by the calendar store provide
L{ICalendarHome} and its required attributes.
"""
- self.assertProvides(ICalendarHome, self.homeUnderTest())
+ self.assertProvides(ICalendarHome, (yield self.homeUnderTest()))
@inlineCallbacks
@@ -315,13 +319,14 @@
self.assertEquals(calendar.notifierID(label="collection"), "CalDAV|home1/calendar_1")
+ @inlineCallbacks
def test_calendarHomeWithUID_exists(self):
"""
Finding an existing calendar home by UID results in an object that
provides L{ICalendarHome} and has a C{uid()} method that returns the
same value that was passed in.
"""
- calendarHome = (self.transactionUnderTest()
+ calendarHome = (yield self.transactionUnderTest()
.calendarHomeWithUID("home1"))
self.assertEquals(calendarHome.uid(), "home1")
self.assertProvides(ICalendarHome, calendarHome)
@@ -428,16 +433,18 @@
# right now
+ @inlineCallbacks
def test_createCalendarWithName_exists(self):
"""
L{ICalendarHome.createCalendarWithName} raises
L{CalendarAlreadyExistsError} when the name conflicts with an already-
existing
"""
+ home = yield self.homeUnderTest()
for name in home1_calendarNames:
self.assertRaises(
HomeChildNameAlreadyExistsError,
- self.homeUnderTest().createCalendarWithName, name
+ home.createCalendarWithName, name
)
@@ -447,7 +454,7 @@
L{ICalendarHome.removeCalendarWithName} removes a calendar that already
exists.
"""
- home = self.homeUnderTest()
+ home = yield self.homeUnderTest()
# FIXME: test transactions
for name in home1_calendarNames:
@@ -471,11 +478,12 @@
)
+ @inlineCallbacks
def test_removeCalendarWithName_absent(self):
"""
Attempt to remove an non-existing calendar should raise.
"""
- home = self.homeUnderTest()
+ home = yield self.homeUnderTest()
self.assertRaises(NoSuchHomeChildError,
home.removeCalendarWithName, "xyzzy")
@@ -719,12 +727,13 @@
)
+ @inlineCallbacks
def test_calendarsAfterAddCalendar(self):
"""
L{ICalendarHome.calendars} includes calendars recently added with
L{ICalendarHome.createCalendarWithName}.
"""
- home = self.homeUnderTest()
+ home = yield self.homeUnderTest()
before = set(x.name() for x in home.calendars())
home.createCalendarWithName("new-name")
after = set(x.name() for x in home.calendars())
@@ -883,11 +892,12 @@
self.assertProvides(IPropertyStore, properties)
+ @inlineCallbacks
def test_homeProperties(self):
"""
L{ICalendarHome.properties} returns a property store.
"""
- self.checkPropertiesMethod(self.homeUnderTest())
+ self.checkPropertiesMethod((yield self.homeUnderTest()))
@inlineCallbacks
@@ -1031,7 +1041,7 @@
)
)
yield self.commit()
- home = self.homeUnderTest()
+ home = yield self.homeUnderTest()
cal = yield self.calendarUnderTest()
fromName = cal.calendarObjectWithName(objName)
fromDropbox = home.calendarObjectWithDropboxID("some-dropbox-id")
@@ -1139,9 +1149,10 @@
t.loseConnection()
yield self.commit()
home = (yield self.homeUnderTest())
+ calendars = (yield home.calendars())
self.assertEquals((yield home.calendarWithName("dropbox")), None)
self.assertEquals(
- set([n.name() for n in self.homeUnderTest().calendars()]),
+ set([n.name() for n in calendars]),
set(home1_calendarNames))
@@ -1171,18 +1182,19 @@
(yield home2.calendarWithName("calendar_1")), None)
+ @inlineCallbacks
def test_dontLeakObjects(self):
"""
Calendar objects in one user's calendar should not show up in another
user's via uid or name queries.
"""
- home1 = self.homeUnderTest()
- home2 = self.transactionUnderTest().calendarHomeWithUID(
+ home1 = yield self.homeUnderTest()
+ home2 = yield self.transactionUnderTest().calendarHomeWithUID(
"home2", create=True)
calendar1 = yield home1.calendarWithName("calendar_1")
calendar2 = yield home2.calendarWithName("calendar")
objects = list(
- (yield home2.calendarWithName("calendar").calendarObjects()))
+ (yield (yield home2.calendarWithName("calendar")).calendarObjects()))
self.assertEquals(objects, [])
for resourceName in self.requirements['home1']['calendar_1'].keys():
obj = calendar1.calendarObjectWithName(resourceName)
Modified: CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_file.py
===================================================================
--- CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_file.py 2010-09-24 01:12:36 UTC (rev 6362)
+++ CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_file.py 2010-09-24 01:44:20 UTC (rev 6363)
@@ -22,9 +22,11 @@
# deleted and replaced with either implementation-specific methods on
# FileStorageTests, or implementation-agnostic methods on CommonTests.
-from twext.python.filepath import CachingFilePath as FilePath
from twisted.trial import unittest
+from twisted.internet.defer import inlineCallbacks
+from twext.python.filepath import CachingFilePath as FilePath
+
from twext.python.vcomponent import VComponent
from txdav.common.icommondatastore import HomeChildNameNotAllowedError
@@ -471,10 +473,11 @@
self.storeRootPath)
+ @inlineCallbacks
def test_calendarObjectsWithDotFile(self):
"""
Adding a dotfile to the calendar home should not increase
"""
- self.homeUnderTest()._path.child(".foo").createDirectory()
+ (yield self.homeUnderTest())._path.child(".foo").createDirectory()
self.test_calendarObjects()
Modified: CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_sql.py 2010-09-24 01:12:36 UTC (rev 6362)
+++ CalendarServer/branches/users/glyph/more-deferreds-6/txdav/caldav/datastore/test/test_sql.py 2010-09-24 01:44:20 UTC (rev 6363)
@@ -119,27 +119,30 @@
"new.attachment")
self.assertTrue(attachmentPath.isfile())
+
+ @inlineCallbacks
def test_migrateCalendarFromFile(self):
"""
C{_migrateCalendar()} can migrate a file-backed calendar to a database-
backed calendar.
"""
- fromCalendar = self.fileTransaction().calendarHomeWithUID(
- "home1").calendarWithName("calendar_1")
- toHome = self.transactionUnderTest().calendarHomeWithUID(
+ fromCalendar = yield (yield self.fileTransaction().calendarHomeWithUID(
+ "home1")).calendarWithName("calendar_1")
+ toHome = yield self.transactionUnderTest().calendarHomeWithUID(
"new-home", create=True)
- toCalendar = toHome.calendarWithName("calendar")
+ toCalendar = yield toHome.calendarWithName("calendar")
_migrateCalendar(fromCalendar, toCalendar, lambda x: x.component())
self.assertCalendarsSimilar(fromCalendar, toCalendar)
+ @inlineCallbacks
def test_migrateHomeFromFile(self):
"""
L{migrateHome} will migrate an L{ICalendarHome} provider from one
backend to another; in this specific case, from the file-based backend
to the SQL-based backend.
"""
- fromHome = self.fileTransaction().calendarHomeWithUID("home1")
+ fromHome = yield self.fileTransaction().calendarHomeWithUID("home1")
builtinProperties = [PropertyName.fromElement(ResourceType)]
@@ -148,10 +151,10 @@
key = PropertyName.fromElement(GETContentLanguage)
fromHome.properties()[key] = GETContentLanguage("C")
- fromHome.calendarWithName("calendar_1").properties()[key] = (
+ (yield fromHome.calendarWithName("calendar_1")).properties()[key] = (
GETContentLanguage("pig-latin")
)
- toHome = self.transactionUnderTest().calendarHomeWithUID(
+ toHome = yield self.transactionUnderTest().calendarHomeWithUID(
"new-home", create=True
)
migrateHome(fromHome, toHome, lambda x: x.component())
@@ -160,7 +163,7 @@
if self.requirements['home1'][k] is not None]))
for c in fromHome.calendars():
self.assertPropertiesSimilar(
- c, toHome.calendarWithName(c.name()),
+ c, (yield toHome.calendarWithName(c.name())),
builtinProperties
)
self.assertPropertiesSimilar(fromHome, toHome, builtinProperties)
@@ -253,8 +256,8 @@
home1 = txn1.homeWithUID(ECALENDARTYPE, "uid1", create=True)
home2 = txn2.homeWithUID(ECALENDARTYPE, "uid1", create=True)
- adbk1 = home1.calendarWithName("calendar")
- adbk2 = home2.calendarWithName("calendar")
+ adbk1 = yield home1.calendarWithName("calendar")
+ adbk2 = yield home2.calendarWithName("calendar")
def _defer1():
adbk1.createObjectResourceWithName("1.ics", VComponent.fromString(
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100923/cd67ec3a/attachment-0001.html>
More information about the calendarserver-changes
mailing list