[CalendarServer-changes] [7069] CalendarServer/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue Feb 22 12:46:58 PST 2011


Revision: 7069
          http://trac.macosforge.org/projects/calendarserver/changeset/7069
Author:   cdaboo at apple.com
Date:     2011-02-22 12:46:57 -0800 (Tue, 22 Feb 2011)
Log Message:
-----------
Tests for migration of the calendar object "metadata".

Modified Paths:
--------------
    CalendarServer/trunk/calendarserver/tools/test/test_purge_old_events.py
    CalendarServer/trunk/txdav/caldav/datastore/test/common.py
    CalendarServer/trunk/txdav/caldav/datastore/test/test_file.py
    CalendarServer/trunk/txdav/common/datastore/test/test_util.py
    CalendarServer/trunk/txdav/common/datastore/test/util.py

Modified: CalendarServer/trunk/calendarserver/tools/test/test_purge_old_events.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/test/test_purge_old_events.py	2011-02-22 20:01:24 UTC (rev 7068)
+++ CalendarServer/trunk/calendarserver/tools/test/test_purge_old_events.py	2011-02-22 20:46:57 UTC (rev 7069)
@@ -319,21 +319,29 @@
     Tests for deleting events older than a given date
     """
 
+    metadata = {
+        "accessMode": "PUBLIC",
+        "isScheduleObject": True,
+        "scheduleTag": "abc",
+        "scheduleEtags": (),
+        "hasPrivateComment": False,
+    }
+
     requirements = {
         "home1" : {
             "calendar1" : {
-                "old.ics" : OLD_ICS,
-                "endless.ics" : ENDLESS_ICS,
-                "oldattachment.ics" : OLD_ATTACHMENT_ICS,
+                "old.ics" : (OLD_ICS, metadata,),
+                "endless.ics" : (ENDLESS_ICS, metadata,),
+                "oldattachment.ics" : (OLD_ATTACHMENT_ICS, metadata,),
             }
         },
         "home2" : {
             "calendar2" : {
-                "straddling.ics" : STRADDLING_ICS,
-                "recent.ics" : RECENT_ICS,
+                "straddling.ics" : (STRADDLING_ICS, metadata,),
+                "recent.ics" : (RECENT_ICS, metadata,),
             },
             "calendar3" : {
-                "repeating_awhile.ics" : REPEATING_AWHILE_ICS,
+                "repeating_awhile.ics" : (REPEATING_AWHILE_ICS, metadata,),
             }
         }
     }

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/common.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/common.py	2011-02-22 20:01:24 UTC (rev 7068)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/common.py	2011-02-22 20:46:57 UTC (rev 7069)
@@ -152,12 +152,34 @@
     L{txdav.caldav.icalendarstore}.
     """
 
+    metadata1 = {
+        "accessMode": "PUBLIC",
+        "isScheduleObject": True,
+        "scheduleTag": "abc",
+        "scheduleEtags": (),
+        "hasPrivateComment": False,
+    }
+    metadata2 = {
+        "accessMode": "PRIVATE",
+        "isScheduleObject": False,
+        "scheduleTag": "",
+        "scheduleEtags": (),
+        "hasPrivateComment": False,
+    }
+    metadata3 = {
+        "accessMode": "PUBLIC",
+        "isScheduleObject": True,
+        "scheduleTag": "abc",
+        "scheduleEtags": (),
+        "hasPrivateComment": True,
+    }
+
     requirements = {
         "home1": {
             "calendar_1": {
-                "1.ics": cal1Root.child("1.ics").getContent(),
-                "2.ics": cal1Root.child("2.ics").getContent(),
-                "3.ics": cal1Root.child("3.ics").getContent()
+                "1.ics": (cal1Root.child("1.ics").getContent(), metadata1,),
+                "2.ics": (cal1Root.child("2.ics").getContent(), metadata2,),
+                "3.ics": (cal1Root.child("3.ics").getContent(), metadata3,),
             },
             "calendar_2": {},
             "calendar_empty": {},
@@ -166,6 +188,7 @@
         "not_a_home": None
     }
 
+
     def storeUnderTest(self):
         """
         Subclasses must override this to return an L{ICommonDataStore} provider
@@ -818,10 +841,10 @@
         self.assertIsInstance(calendar.created(), int)
         self.assertIsInstance(calendar.modified(), int)
 
-        self.assertEqual(calendar.accessMode, "")
-        self.assertEqual(calendar.isScheduleObject, False)
-        self.assertEqual(calendar.scheduleEtags, ())
-        self.assertEqual(calendar.hasPrivateComment, False)
+        self.assertEqual(calendar.accessMode, CommonTests.metadata1["accessMode"])
+        self.assertEqual(calendar.isScheduleObject, CommonTests.metadata1["isScheduleObject"])
+        self.assertEqual(calendar.scheduleEtags, CommonTests.metadata1["scheduleEtags"])
+        self.assertEqual(calendar.hasPrivateComment, CommonTests.metadata1["hasPrivateComment"])
 
         calendar.accessMode = Component.ACCESS_PRIVATE
         calendar.isScheduleObject = True
@@ -992,10 +1015,18 @@
             (yield calendar1.calendarObjectWithName(name)), None
         )
         component = VComponent.fromString(event4_text)
-        yield calendar1.createCalendarObjectWithName(name, component)
+        metadata = {
+            "accessMode": "PUBLIC",
+            "isScheduleObject": True,
+            "scheduleTag": "abc",
+            "scheduleEtags": (),
+            "hasPrivateComment": False,
+        }
+        yield calendar1.createCalendarObjectWithName(name, component, metadata=metadata)
 
         calendarObject = yield calendar1.calendarObjectWithName(name)
         self.assertEquals((yield calendarObject.component()), component)
+        self.assertEquals((yield calendarObject.getMetadata()), metadata)
 
         yield self.commit()
 

Modified: CalendarServer/trunk/txdav/caldav/datastore/test/test_file.py
===================================================================
--- CalendarServer/trunk/txdav/caldav/datastore/test/test_file.py	2011-02-22 20:01:24 UTC (rev 7068)
+++ CalendarServer/trunk/txdav/caldav/datastore/test/test_file.py	2011-02-22 20:46:57 UTC (rev 7069)
@@ -504,6 +504,9 @@
 
     test_simpleHomeSyncToken.skip = "Not in file store."
 
+    def test_calendarObjectMetaData(self):
+        pass
+    test_calendarObjectMetaData.skip = "Example file data has no xattrs"
 
     def test_notificationSyncToken(self):
         """

Modified: CalendarServer/trunk/txdav/common/datastore/test/test_util.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/test_util.py	2011-02-22 20:01:24 UTC (rev 7068)
+++ CalendarServer/trunk/txdav/common/datastore/test/test_util.py	2011-02-22 20:46:57 UTC (rev 7069)
@@ -18,20 +18,23 @@
 Tests for L{txdav.common.datastore.util}.
 """
 
-from twisted.internet.protocol import Protocol
-from twisted.trial.unittest import TestCase
 from twext.python.filepath import CachingFilePath
 from twext.web2.http_headers import MimeType
 
 from twisted.application.service import Service, MultiService
-from txdav.common.datastore.util import UpgradeToDatabaseService
+from twisted.internet.defer import inlineCallbacks, Deferred, returnValue
+from twisted.internet.protocol import Protocol
+from twisted.trial.unittest import TestCase
+
+from twistedcaldav.config import config
+from twistedcaldav.memcacher import Memcacher
+
+from txdav.caldav.datastore.test.common import CommonTests
 from txdav.common.datastore.file import CommonDataStore
 from txdav.common.datastore.test.util import theStoreBuilder, \
     populateCalendarsFrom, StubNotifierFactory
-from txdav.caldav.datastore.test.common import CommonTests
-from twisted.internet.defer import inlineCallbacks, Deferred, returnValue
+from txdav.common.datastore.util import UpgradeToDatabaseService
 
-
 class HomeMigrationTests(TestCase):
     """
     Tests for L{UpgradeToDatabaseService}.
@@ -43,6 +46,9 @@
         Set up two stores to migrate between.
         """
         # Add some files to the file store.
+        self.patch(config.Memcached.Pools.Default, "ClientEnabled", False)
+        self.patch(config.Memcached.Pools.Default, "ServerEnabled", False)
+        self.patch(Memcacher, "allowTestCache", True)
         self.filesPath = CachingFilePath(self.mktemp())
         self.filesPath.createDirectory()
         fileStore = self.fileStore = CommonDataStore(
@@ -91,6 +97,17 @@
                 ".some-extra-data").getContent(),
                 "some extra data"
         )
+        
+        # Want metadata preserved
+        home = (yield txn.calendarHomeWithUID("home1"))
+        calendar = (yield home.calendarWithName("calendar_1"))
+        for name, metadata in (
+            ("1.ics", CommonTests.metadata1),
+            ("2.ics", CommonTests.metadata2),
+            ("3.ics", CommonTests.metadata3),
+        ):
+            object = (yield calendar.calendarObjectWithName(name))
+            self.assertEquals(object.getMetadata(), metadata)
 
 
     @inlineCallbacks

Modified: CalendarServer/trunk/txdav/common/datastore/test/util.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/util.py	2011-02-22 20:01:24 UTC (rev 7068)
+++ CalendarServer/trunk/txdav/common/datastore/test/util.py	2011-02-22 20:46:57 UTC (rev 7069)
@@ -208,9 +208,11 @@
                     yield home.createCalendarWithName(calendarName)
                     calendar = yield home.calendarWithName(calendarName)
                     for objectName in calendarObjNames:
-                        objData = calendarObjNames[objectName]
+                        objData, metadata = calendarObjNames[objectName]
                         yield calendar.createCalendarObjectWithName(
-                            objectName, VComponent.fromString(objData)
+                            objectName,
+                            VComponent.fromString(objData),
+                            metadata = metadata,
                         )
     yield populateTxn.commit()
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110222/e0ca0f5e/attachment-0001.html>


More information about the calendarserver-changes mailing list