[CalendarServer-changes] [3724] CalendarServer/branches/users/sagen/migration-3709/twistedcaldav/ test/test_upgrade.py

source_changes at macosforge.org source_changes at macosforge.org
Tue Feb 24 09:30:43 PST 2009


Revision: 3724
          http://trac.macosforge.org/projects/calendarserver/changeset/3724
Author:   sagen at apple.com
Date:     2009-02-24 09:30:41 -0800 (Tue, 24 Feb 2009)
Log Message:
-----------
Tests for calendar-free-busy-set update

Modified Paths:
--------------
    CalendarServer/branches/users/sagen/migration-3709/twistedcaldav/test/test_upgrade.py

Modified: CalendarServer/branches/users/sagen/migration-3709/twistedcaldav/test/test_upgrade.py
===================================================================
--- CalendarServer/branches/users/sagen/migration-3709/twistedcaldav/test/test_upgrade.py	2009-02-24 16:38:40 UTC (rev 3723)
+++ CalendarServer/branches/users/sagen/migration-3709/twistedcaldav/test/test_upgrade.py	2009-02-24 17:30:41 UTC (rev 3724)
@@ -16,12 +16,16 @@
 
 from twistedcaldav.config import config
 from twistedcaldav.directory.calendaruserproxy import CalendarUserProxyDatabase
-from twistedcaldav.upgrade import UpgradeError
-from twistedcaldav.upgrade import upgradeData
+from twistedcaldav.upgrade import (
+    UpgradeError, upgradeData, updateFreeBusySet, updateFreeBusyHref
+)
 from twistedcaldav.test.util import TestCase
+from calendarserver.tools.util import getDirectory
+from twisted.web2.dav import davxml
 
-import os
 
+import os, zlib, cPickle
+
 class ProxyDBUpgradeTests(TestCase):
     
     def setUpInitialStates(self):
@@ -188,3 +192,59 @@
         self.assertTrue(os.path.exists(os.path.join(config.DocumentRoot, "principals", CalendarUserProxyDatabase.dbOldFilename)))
         self.assertTrue(os.path.exists(os.path.join(config.DataRoot, CalendarUserProxyDatabase.dbFilename)))
         
+
+    def test_freeBusyUpgrade(self):
+        """
+        Test the updating of calendar-free-busy-set xattrs on inboxes
+        """
+
+        self.setUpInitialStates()
+        directory = getDirectory()
+
+        #
+        # Verify these values require no updating:
+        #
+
+        # Uncompressed XML
+        value = "<?xml version='1.0' encoding='UTF-8'?>\r\n<calendar-free-busy-set xmlns='urn:ietf:params:xml:ns:caldav'>\r\n  <href xmlns='DAV:'>/calendars/__uids__/BB05932F-DCE7-4195-9ED4-0896EAFF3B0B/calendar</href>\r\n</calendar-free-busy-set>\r\n"
+        self.assertEquals(updateFreeBusySet(value, directory), None)
+
+        # Zlib compressed XML
+        value = "<?xml version='1.0' encoding='UTF-8'?>\r\n<calendar-free-busy-set xmlns='urn:ietf:params:xml:ns:caldav'>\r\n  <href xmlns='DAV:'>/calendars/__uids__/BB05932F-DCE7-4195-9ED4-0896EAFF3B0B/calendar</href>\r\n</calendar-free-busy-set>\r\n"
+        value = zlib.compress(value)
+        self.assertEquals(updateFreeBusySet(value, directory), None)
+
+        # Pickled XML
+        value = "<?xml version='1.0' encoding='UTF-8'?>\r\n<calendar-free-busy-set xmlns='urn:ietf:params:xml:ns:caldav'>\r\n  <href xmlns='DAV:'>/calendars/__uids__/BB05932F-DCE7-4195-9ED4-0896EAFF3B0B/calendar</href>\r\n</calendar-free-busy-set>\r\n"
+        doc = davxml.WebDAVDocument.fromString(value)
+        value = cPickle.dumps(doc.root_element)
+        self.assertEquals(updateFreeBusySet(value, directory), None)
+
+
+        #
+        # Verify these values do require updating:
+        #
+
+        expected = "<?xml version='1.0' encoding='UTF-8'?>\r\n<calendar-free-busy-set xmlns='urn:ietf:params:xml:ns:caldav'>\r\n  <href xmlns='DAV:'>/calendars/__uids__/6423F94A-6B76-4A3A-815B-D52CFD77935D/calendar/</href>\r\n</calendar-free-busy-set>\r\n"
+
+        # Uncompressed XML
+        value = "<?xml version='1.0' encoding='UTF-8'?>\r\n<calendar-free-busy-set xmlns='urn:ietf:params:xml:ns:caldav'>\r\n  <href xmlns='DAV:'>/calendars/users/wsanchez/calendar</href>\r\n</calendar-free-busy-set>\r\n"
+        newValue = updateFreeBusySet(value, directory)
+        newValue = zlib.decompress(newValue)
+        self.assertEquals(newValue, expected)
+
+        # Zlib compressed XML
+        value = "<?xml version='1.0' encoding='UTF-8'?>\r\n<calendar-free-busy-set xmlns='urn:ietf:params:xml:ns:caldav'>\r\n  <href xmlns='DAV:'>/calendars/users/wsanchez/calendar</href>\r\n</calendar-free-busy-set>\r\n"
+        value = zlib.compress(value)
+        newValue = updateFreeBusySet(value, directory)
+        newValue = zlib.decompress(newValue)
+        self.assertEquals(newValue, expected)
+
+        # Pickled XML
+        value = "<?xml version='1.0' encoding='UTF-8'?>\r\n<calendar-free-busy-set xmlns='urn:ietf:params:xml:ns:caldav'>\r\n  <href xmlns='DAV:'>/calendars/users/wsanchez/calendar</href>\r\n</calendar-free-busy-set>\r\n"
+        doc = davxml.WebDAVDocument.fromString(value)
+        value = cPickle.dumps(doc.root_element)
+        newValue = updateFreeBusySet(value, directory)
+        newValue = zlib.decompress(newValue)
+        self.assertEquals(newValue, expected)
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090224/b5b80409/attachment.html>


More information about the calendarserver-changes mailing list