[CalendarServer-changes] [8691] CalendarServer/branches/users/glyph/migrate-merge

source_changes at macosforge.org source_changes at macosforge.org
Thu Feb 16 04:28:31 PST 2012


Revision: 8691
          http://trac.macosforge.org/projects/calendarserver/changeset/8691
Author:   glyph at apple.com
Date:     2012-02-16 04:28:30 -0800 (Thu, 16 Feb 2012)
Log Message:
-----------
unit-level test for migrateHome

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/migrate-merge/txdav/caldav/datastore/test/test_util.py

Property Changed:
----------------
    CalendarServer/branches/users/glyph/migrate-merge/

Modified: CalendarServer/branches/users/glyph/migrate-merge/txdav/caldav/datastore/test/test_util.py
===================================================================
--- CalendarServer/branches/users/glyph/migrate-merge/txdav/caldav/datastore/test/test_util.py	2012-02-16 12:27:32 UTC (rev 8690)
+++ CalendarServer/branches/users/glyph/migrate-merge/txdav/caldav/datastore/test/test_util.py	2012-02-16 12:28:30 UTC (rev 8691)
@@ -18,6 +18,7 @@
 Tests for txdav.caldav.datastore.util.
 """
 
+from twisted.trial.unittest import TestCase as BaseTestCase
 from twext.web2.http_headers import MimeType
 
 from twisted.internet.defer import inlineCallbacks
@@ -25,8 +26,10 @@
 from twistedcaldav.ical import Component
 from twistedcaldav.test.util import TestCase
 
+from txdav.common.datastore.test.util import buildStore, populateCalendarsFrom, CommonCommonTests
+
 from txdav.caldav.datastore.util import dropboxIDFromCalendarObject,\
-    StorageTransportBase
+    StorageTransportBase, migrateHome
 
 class DropboxIDTests(TestCase):
     """
@@ -305,3 +308,49 @@
 
 
 
+class HomeMigrationTests(CommonCommonTests, BaseTestCase):
+    """
+    Tests for L{migrateHome}.
+    """
+
+    @inlineCallbacks
+    def setUp(self):
+        yield super(HomeMigrationTests, self).setUp()
+        self.theStore = yield buildStore(self, self.notifierFactory)
+
+
+    def storeUnderTest(self):
+        return self.theStore
+
+
+    @inlineCallbacks
+    def test_migrateEmptyHome(self):
+        """
+        Migrating an empty home into an existing home should destroy all the existing home's calendars.
+        """
+        yield populateCalendarsFrom({
+            "empty_home": {},
+            "non_empty_home": {
+                "calendar": {},
+                "inbox": {},
+                # XXX: implementation is configuration-sensitive regarding the
+                # 'tasks' calendar and it shouldn't be.
+                "tasks": {}
+            }
+        }, self.storeUnderTest())
+        txn = self.transactionUnderTest()
+        emptyHome = yield txn.calendarHomeWithUID("empty_home")
+        self.assertIdentical((yield emptyHome.calendarWithName("calendar")),
+                             None)
+        nonEmpty = yield txn.calendarHomeWithUID("non_empty_home")
+        yield migrateHome(emptyHome, nonEmpty)
+        yield self.commit()
+        txn = self.transactionUnderTest()
+        emptyHome = yield txn.calendarHomeWithUID("empty_home")
+        nonEmpty = yield txn.calendarHomeWithUID("non_empty_home")
+        self.assertIdentical((yield nonEmpty.calendarWithName("inbox")),
+                             None)
+        self.assertIdentical((yield nonEmpty.calendarWithName("calendar")),
+                             None)
+
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120216/873d5177/attachment-0001.html>


More information about the calendarserver-changes mailing list