[CalendarServer-changes] [1208] CalendarServer/branches/users/cdaboo/sqlprops-1202

source_changes at macosforge.org source_changes at macosforge.org
Sun Feb 18 09:26:59 PST 2007


Revision: 1208
          http://trac.macosforge.org/projects/calendarserver/changeset/1208
Author:   cdaboo at apple.com
Date:     2007-02-18 09:26:59 -0800 (Sun, 18 Feb 2007)

Log Message:
-----------
Delete properties when the resource is deleted. Note this does not take into account partial failures. It also
breaks use of xattrs as that does not support the delete props method yet.

Modified Paths:
--------------
    CalendarServer/branches/users/cdaboo/sqlprops-1202/lib-patches/Twisted/twisted.web2.dav.method.delete.patch
    CalendarServer/branches/users/cdaboo/sqlprops-1202/twistedcaldav/test/test_sqlprops.py

Modified: CalendarServer/branches/users/cdaboo/sqlprops-1202/lib-patches/Twisted/twisted.web2.dav.method.delete.patch
===================================================================
--- CalendarServer/branches/users/cdaboo/sqlprops-1202/lib-patches/Twisted/twisted.web2.dav.method.delete.patch	2007-02-18 00:24:22 UTC (rev 1207)
+++ CalendarServer/branches/users/cdaboo/sqlprops-1202/lib-patches/Twisted/twisted.web2.dav.method.delete.patch	2007-02-18 17:26:59 UTC (rev 1208)
@@ -2,7 +2,7 @@
 ===================================================================
 --- twisted/web2/dav/method/delete.py	(revision 18545)
 +++ twisted/web2/dav/method/delete.py	(working copy)
-@@ -58,8 +58,28 @@
+@@ -58,8 +58,31 @@
      yield x
      x.getResult()
  
@@ -23,6 +23,9 @@
 -    yield x.getResult()
 +    result = x.getResult()
  
++    # Explicitly delete properties - no one else does it
++    self.deadProperties().deleteAll()
++
 +    # Adjust quota
 +    if myquota is not None:
 +        d = waitForDeferred(self.quotaSizeAdjust(request, -old_size))

Modified: CalendarServer/branches/users/cdaboo/sqlprops-1202/twistedcaldav/test/test_sqlprops.py
===================================================================
--- CalendarServer/branches/users/cdaboo/sqlprops-1202/twistedcaldav/test/test_sqlprops.py	2007-02-18 00:24:22 UTC (rev 1207)
+++ CalendarServer/branches/users/cdaboo/sqlprops-1202/twistedcaldav/test/test_sqlprops.py	2007-02-18 17:26:59 UTC (rev 1208)
@@ -19,7 +19,15 @@
 import os
 import time
 
+from twisted.trial.unittest import SkipTest
+from twisted.web2 import responsecode
 from twisted.web2.dav import davxml
+from twisted.web2.dav.fileop import put
+from twisted.web2.dav.resource import TwistedGETContentMD5
+from twisted.web2.dav.test.util import serialize
+from twisted.web2.iweb import IResponse
+from twisted.web2.stream import MemoryStream
+from twisted.web2.test.test_server import SimpleRequest
 
 from twistedcaldav import caldavxml, customxml
 from twistedcaldav.root import RootResource
@@ -194,3 +202,46 @@
 #                        msg="Time for 1000 prop query = %s" % (t2 - t1,))
 #
 #        self._testResourcePropertyList(num_resources, result)
+
+    def test_deleteresource(self):
+        fpath = os.path.join(self.docroot, "file.ics")
+        rsrc = CalDAVFile(fpath)
+        ms = MemoryStream("Some Data")
+
+        def donePut(status):
+            self.assertTrue(status == responsecode.CREATED)
+            md5 = TwistedGETContentMD5.fromString("MD5")
+            rsrc.writeDeadProperty(md5)
+            
+            # Check index
+            index = sqlPropertyStore(rsrc)
+            self._testProperty(index, md5)
+            
+            def doneDelete(response):
+                response = IResponse(response)
+    
+                if response.code != responsecode.NO_CONTENT:
+                    self.fail("DELETE response %s != %s" % (response.code, responsecode.NO_CONTENT))
+    
+                if os.path.exists(fpath):
+                    self.fail("DELETE did not remove path %s" % (fpath,))
+
+                self.assertFalse(index.contains(md5.qname()),
+                                 msg="Property %s exists after resource was deleted." % md5)
+
+            def work():
+                # Delete resource and test
+                request = SimpleRequest(self.site, "DELETE", "/file.ics")
+                yield (request, doneDelete)
+
+            return serialize(self.send, work())
+
+        d = put(ms, rsrc.fp)
+        d.addCallback(donePut)
+        return d
+    
+    def test_copyresource(self):
+        raise SkipTest("test unimplemented")
+    
+    def test_moveresource(self):
+        raise SkipTest("test unimplemented")

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070218/3f86a65f/attachment.html


More information about the calendarserver-changes mailing list