[CalendarServer-changes] [11616] CalendarServer/trunk/txdav/caldav/datastore

source_changes at macosforge.org source_changes at macosforge.org
Mon Aug 19 10:38:32 PDT 2013


Revision: 11616
          http://trac.calendarserver.org//changeset/11616
Author:   cdaboo at apple.com
Date:     2013-08-19 10:38:32 -0700 (Mon, 19 Aug 2013)
Log Message:
-----------
Make sure inbox exists after doing file store migration.

Modified Paths:
--------------
    CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py
    CalendarServer/trunk/txdav/caldav/datastore/test/test_util.py
    CalendarServer/trunk/txdav/caldav/datastore/util.py

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py	2013-08-19 17:21:45 UTC (rev 11615)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py	2013-08-19 17:38:32 UTC (rev 11616)
@@ -444,7 +444,7 @@
         )
         yield migrateHome(fromHome, toHome, lambda x: x.component())
         toCalendars = yield toHome.calendars()
-        self.assertEquals(set([c.name() for c in toCalendars]),
+        self.assertEquals(set([c.name() for c in toCalendars if c.name() != "inbox"]),
                           set([k for k in self.requirements['home1'].keys()
                                if self.requirements['home1'][k] is not None]))
         fromCalendars = yield fromHome.calendars()
@@ -474,7 +474,7 @@
             )
 
         supported_components = set()
-        self.assertEqual(len(toCalendars), 3)
+        self.assertEqual(len(toCalendars), 4)
         for calendar in toCalendars:
             if calendar.name() == "inbox":
                 continue
@@ -502,7 +502,7 @@
             )
 
         supported_components = set()
-        self.assertEqual(len(toCalendars), 2)
+        self.assertEqual(len(toCalendars), 3)
         for calendar in toCalendars:
             if calendar.name() == "inbox":
                 continue

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_util.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/test_util.py	2013-08-19 17:21:45 UTC (rev 11615)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_util.py	2013-08-19 17:38:32 UTC (rev 11616)
@@ -354,20 +354,19 @@
         }, self.storeUnderTest())
         txn = self.transactionUnderTest()
         emptyHome = yield txn.calendarHomeWithUID("empty_home")
-        self.assertIdentical((yield emptyHome.calendarWithName("calendar")),
-                             None)
+        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)
 
+        self.assertIdentical((yield nonEmpty.calendarWithName("calendar")), None)
+        self.assertNotIdentical((yield nonEmpty.calendarWithName("inbox")), None)
+        self.assertNotIdentical((yield nonEmpty.calendarWithName("other-default-calendar")), None)
 
+
     @staticmethod
     def sampleEvent(uid, summary=None):
         """

Modified: CalendarServer/trunk/txdav/caldav/datastore/util.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/util.py	2013-08-19 17:21:45 UTC (rev 11615)
+++ CalendarServer/trunk/txdav/caldav/datastore/util.py	2013-08-19 17:38:32 UTC (rev 11616)
@@ -356,8 +356,7 @@
 
 
 @inlineCallbacks
-def migrateHome(inHome, outHome, getComponent=lambda x: x.component(),
-                merge=False):
+def migrateHome(inHome, outHome, getComponent=lambda x: x.component(), merge=False):
     """
     Copy all calendars and properties in the given input calendar home to the
     given output calendar home.
@@ -373,7 +372,7 @@
         a calendar in outHome).
 
     @param merge: a boolean indicating whether to raise an exception when
-        encounting a conflicting element of data (calendar or event), or to
+        encountering a conflicting element of data (calendar or event), or to
         attempt to merge them together.
 
     @return: a L{Deferred} that fires with C{None} when the migration is
@@ -398,8 +397,7 @@
         yield d
         outCalendar = yield outHome.calendarWithName(name)
         try:
-            yield _migrateCalendar(calendar, outCalendar, getComponent,
-                                   merge=merge)
+            yield _migrateCalendar(calendar, outCalendar, getComponent, merge=merge)
         except InternalDataStoreError:
             log.error(
                 "  Failed to migrate calendar: %s/%s" % (inHome.name(), name,)
@@ -408,6 +406,11 @@
     # No migration for notifications, since they weren't present in earlier
     # released versions of CalendarServer.
 
+    # May need to create inbox if it was not present in the original file store for some reason
+    inboxCalendar = yield outHome.calendarWithName("inbox")
+    if inboxCalendar is None:
+        yield outHome.createCalendarWithName("inbox")
+
     # May need to split calendars by component type
     if config.RestrictCalendarsToOneComponentType:
         yield outHome.splitCalendars()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130819/62923df1/attachment.html>


More information about the calendarserver-changes mailing list