[CalendarServer-changes] [8326] CalendarServer/branches/users/glyph/multiget-delete/txdav/caldav/ datastore/test/common.py
source_changes at macosforge.org
source_changes at macosforge.org
Fri Nov 18 10:14:00 PST 2011
Revision: 8326
http://trac.macosforge.org/projects/calendarserver/changeset/8326
Author: glyph at apple.com
Date: 2011-11-18 10:14:00 -0800 (Fri, 18 Nov 2011)
Log Message:
-----------
complete test; assume current concurrency model; future failures may unfortunately hang but that's better than not knowing if we're actually testing this case
Modified Paths:
--------------
CalendarServer/branches/users/glyph/multiget-delete/txdav/caldav/datastore/test/common.py
Modified: CalendarServer/branches/users/glyph/multiget-delete/txdav/caldav/datastore/test/common.py
===================================================================
--- CalendarServer/branches/users/glyph/multiget-delete/txdav/caldav/datastore/test/common.py 2011-11-18 18:13:50 UTC (rev 8325)
+++ CalendarServer/branches/users/glyph/multiget-delete/txdav/caldav/datastore/test/common.py 2011-11-18 18:14:00 UTC (rev 8326)
@@ -55,6 +55,7 @@
from txdav.caldav.icalendarstore import QuotaExceeded
from txdav.common.datastore.test.util import deriveQuota
from txdav.common.datastore.test.util import withSpecialQuota
+from txdav.common.icommondatastore import ConcurrentModification
from twistedcaldav.ical import Component
storePath = FilePath(__file__).parent().child("calendar_store")
@@ -733,17 +734,23 @@
def test_calendarObjectRemoveConcurrent(self):
"""
If a transaction, C{A}, is examining an L{ICalendarObject} C{O} while
- another transaction, C{B}, deletes O, L{O.text()} should raise an
- exception.
+ another transaction, C{B}, deletes O, L{O.component()} should raise
+ L{ConcurrentModification}. (This assumes that we are in the default
+ serialization level, C{READ COMMITTED}. This test might fail if
+ something changes that.)
"""
calendarObject = yield self.calendarObjectUnderTest()
ctxn = self.concurrentTransaction()
calendar1prime = yield self.calendarUnderTest(ctxn)
- removal = calendar1prime.removeCalendarObjectWithName("1.ics")
- retrieval = calendarObject.component()
- def oneOf(deferreds):
+ yield calendar1prime.removeCalendarObjectWithName("1.ics")
+ yield ctxn.commit()
+ try:
+ retrieval = yield calendarObject.component()
+ except ConcurrentModification:
pass
- yield oneOf([removal, retrieval])
+ else:
+ self.fail("ConcurrentModification not raised, %r returned." %
+ (retrieval,))
@inlineCallbacks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111118/9cd128b3/attachment-0001.html>
More information about the calendarserver-changes
mailing list