[CalendarServer-changes] [14634] CalendarServer/trunk/txdav

source_changes at macosforge.org source_changes at macosforge.org
Mon Mar 30 09:59:34 PDT 2015


Revision: 14634
          http://trac.calendarserver.org//changeset/14634
Author:   sagen at apple.com
Date:     2015-03-30 09:59:34 -0700 (Mon, 30 Mar 2015)
Log Message:
-----------
Fix default calendar related unit tests to work with trash

Modified Paths:
--------------
    CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py
    CalendarServer/trunk/txdav/common/datastore/sql.py

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py	2015-03-30 16:19:36 UTC (rev 14633)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_sql.py	2015-03-30 16:59:34 UTC (rev 14634)
@@ -1218,12 +1218,14 @@
         home = yield self.transactionUnderTest().calendarHomeWithUID("home_defaults")
         self.assertEqual(home._default_events, default_events._resourceID)
         self.assertEqual(home._default_tasks, default_tasks._resourceID)
-        yield home.removeCalendarWithName("calendar_1-vtodo", bypassTrash=True)
+        yield home.removeCalendarWithName("calendar_1-vtodo", bypassTrash=False)
         yield self.commit()
 
         home = yield self.transactionUnderTest().calendarHomeWithUID("home_defaults")
-        self.assertEqual(home._default_events, default_events._resourceID)
-        self.assertEqual(home._default_tasks, None)
+        default_events = yield home.defaultCalendar("VEVENT", create=False)
+        self.assertTrue(default_events is not None)
+        default_tasks = yield home.defaultCalendar("VTODO", create=False)
+        self.assertTrue(default_tasks is None)
 
         default_tasks2 = yield home.defaultCalendar("VTODO")
         self.assertTrue(default_tasks2 is not None)
@@ -1290,19 +1292,19 @@
         calendar1 = yield home.calendarWithName("calendar_1")
         default_events = yield home.defaultCalendar("VEVENT")
         self.assertTrue(default_events is not None)
-        self.assertEqual(home._default_events, calendar1._resourceID)
+        self.assertEqual(default_events._resourceID, calendar1._resourceID)
         yield self.commit()
 
         home = yield self.homeUnderTest(name="home_defaults")
         calendar1 = yield home.calendarWithName("calendar_1")
-        yield calendar1.remove(bypassTrash=True)
+        yield calendar1.remove(bypassTrash=False)
         yield self.commit()
 
         home = yield self.homeUnderTest(name="home_defaults")
-        self.assertEqual(home._default_events, None)
-        self.assertEqual(home._default_tasks, None)
-        calendars = yield home.listCalendars()
-        self.assertEqual(calendars, ["inbox", ])
+        default_events = yield home.defaultCalendar("VEVENT", create=False)
+        self.assertEqual(default_events, None)
+        default_tasks = yield home.defaultCalendar("VTODO", create=False)
+        self.assertEqual(default_tasks, None)
         yield self.commit()
 
         home = yield self.homeUnderTest(name="home_defaults")
@@ -1314,11 +1316,40 @@
         calendar1 = yield home.calendarWithName(default_events.name())
         default_events = yield home.defaultCalendar("VEVENT")
         self.assertTrue(default_events is not None)
-        self.assertEqual(home._default_events, calendar1._resourceID)
+        self.assertEqual(default_events._resourceID, calendar1._resourceID)
         yield self.commit()
 
 
     @inlineCallbacks
+    def test_defaultCalendar_delete_and_recover(self):
+        """
+        Make sure a default_events calendar is re-assigned after recovering from trash
+        """
+
+        if config.EnableTrashCollection:
+            home = yield self.homeUnderTest(name="home_defaults")
+            calendar1 = yield home.calendarWithName("calendar_1")
+            default_events = yield home.defaultCalendar("VEVENT")
+            self.assertEqual(default_events._resourceID, calendar1._resourceID)
+            yield self.commit()
+
+            home = yield self.homeUnderTest(name="home_defaults")
+            calendar1 = yield home.calendarWithName("calendar_1")
+            yield calendar1.remove(bypassTrash=False)
+            default_events = yield home.defaultCalendar("VEVENT", create=False)
+            self.assertTrue(default_events is None)
+            yield self.commit()
+
+            home = yield self.homeUnderTest(name="home_defaults")
+            trashChildren = yield home.children(onlyInTrash=True)
+            calendar1 = trashChildren[0]
+            yield calendar1.fromTrash()
+            default_events = yield home.defaultCalendar("VEVENT")
+            self.assertEqual(default_events._resourceID, calendar1._resourceID)
+            yield self.commit()
+
+
+    @inlineCallbacks
     def test_resourceLock(self):
         """
         Test CommonObjectResource.lock to make sure it locks, raises on missing resource,

Modified: CalendarServer/trunk/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/sql.py	2015-03-30 16:19:36 UTC (rev 14633)
+++ CalendarServer/trunk/txdav/common/datastore/sql.py	2015-03-30 16:59:34 UTC (rev 14634)
@@ -3518,10 +3518,7 @@
         )
         newName = "{}-{}".format(self._name[:36], str(uuid4()))
         yield self.rename(newName)
-        # yield self.notifyPropertyChanged()
-        # yield self.invalidateQueryCache()
         yield self._deletedSyncToken()
-        # yield self._home.notifyChanged()
 
         # Update _children cache to reflect moving to trash
         try:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20150330/2202e7d6/attachment.html>


More information about the calendarserver-changes mailing list