[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