[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