[CalendarServer-changes] [3900] CalendarServer/branches/exarkun/update-twisted-3816

source_changes at macosforge.org source_changes at macosforge.org
Thu Mar 19 14:04:34 PDT 2009


Revision: 3900
          http://trac.macosforge.org/projects/calendarserver/changeset/3900
Author:   exarkun at twistedmatrix.com
Date:     2009-03-19 14:04:34 -0700 (Thu, 19 Mar 2009)
Log Message:
-----------
migrated to Twisted

Modified Paths:
--------------
    CalendarServer/branches/exarkun/update-twisted-3816/run

Removed Paths:
-------------
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc2518.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc3744.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc4331.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.fileop.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.http.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.idav.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch
    CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.util.patch

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc2518.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc2518.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc2518.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,37 +0,0 @@
-Index: twisted/web2/dav/element/rfc2518.py
-===================================================================
---- twisted/web2/dav/element/rfc2518.py	(revision 19773)
-+++ twisted/web2/dav/element/rfc2518.py	(working copy)
-@@ -59,8 +59,8 @@
-     """
-     name = "depth"
- 
--    def __init__(self, *children, **attributes):
--        super(Depth, self).__init__(*children, **attributes)
-+    def validate(self):
-+        super(Depth, self).validate()
- 
-         depth = str(self)
-         if depth not in ("0", "1", "infinity"):
-@@ -382,8 +382,8 @@
-         PCDATAElement: (0, 1),
-     }
- 
--    def __init__(self, *children, **attributes):
--        super(KeepAlive, self).__init__(*children, **attributes)
-+    def validate(self):
-+        super(KeepAlive, self).validate()
- 
-         type = None
- 
-@@ -450,8 +450,8 @@
-         (dav_namespace, "prop"    ): (0, 1),
-     }
- 
--    def __init__(self, *children, **attributes):
--        super(PropertyFind, self).__init__(*children, **attributes)
-+    def validate(self):
-+        super(PropertyFind, self).validate()
- 
-         if len(self.children) != 1:
-             raise ValueError(

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc3744.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc3744.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc3744.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,102 +0,0 @@
-Index: twisted/web2/dav/element/rfc3744.py
-===================================================================
---- twisted/web2/dav/element/rfc3744.py	(revision 19773)
-+++ twisted/web2/dav/element/rfc3744.py	(working copy)
-@@ -131,8 +131,8 @@
-         (dav_namespace, "self"           ): (0, 1),
-     }
- 
--    def __init__(self, *children, **attributes):
--        super(Principal, self).__init__(*children, **attributes)
-+    def validate(self):
-+        super(Principal, self).validate()
- 
-         if len(self.children) > 1:
-             raise ValueError(
-@@ -385,9 +385,14 @@
-         self.inherited  = None
-         self.protected  = False
- 
-+        my_children = []
-+
-         for child in self.children:
-             namespace, name = child.qname()
- 
-+            if isinstance(child, PCDATAElement):
-+                continue
-+
-             if (namespace == dav_namespace):
-                 if name in ("principal", "invert"):
-                     if self.principal is not None:
-@@ -417,6 +422,10 @@
-                 elif name == "protected":
-                     self.protected = True
- 
-+            my_children.append(child)
-+
-+        self.children = tuple(my_children)
-+
-         if self.principal is None:
-             raise ValueError(
-                 "One of DAV:principal or DAV:invert is required in %s, got: %s"
-@@ -456,7 +465,7 @@
-     """
-     name = "self"
- 
--class Invert (WebDAVEmptyElement):
-+class Invert (WebDAVElement):
-     """
-     Principal which matches a user if the user does not match the principal
-     contained by this principal. (RFC 3744, section 5.5.1)
-@@ -551,8 +560,8 @@
-         (dav_namespace, "property"       ): (0, None),
-     }
- 
--    def __init__(self, *children, **attributes):
--        super(RequiredPrincipal, self).__init__(*children, **attributes)
-+    def validate(self):
-+        super(RequiredPrincipal, self).validate()
- 
-         type = None
- 
-@@ -628,8 +637,8 @@
- 
-     allowed_children = { WebDAVElement: (0, None) }
- 
--    def __init__(self, *children, **attributes):
--        super(ACLPrincipalPropSet, self).__init__(*children, **attributes)
-+    def validate(self):
-+        super(ACLPrincipalPropSet, self).validate()
- 
-         prop = False
-         
-@@ -656,8 +665,8 @@
-         (dav_namespace, "prop"              ): (0, 1),
-     }
- 
--    def __init__(self, *children, **attributes):
--        super(PrincipalMatch, self).__init__(*children, **attributes)
-+    def validate(self):
-+        super(PrincipalMatch, self).validate()
- 
-         # This element can be empty when uses in supported-report-set
-         if not len(self.children):
-@@ -705,6 +714,7 @@
-         (dav_namespace, "prop"                             ): (0, 1),
-         (dav_namespace, "apply-to-principal-collection-set"): (0, 1),
-     }
-+    allowed_attributes = { "test": False }
- 
- class PropertySearch (WebDAVElement):
-     """
-@@ -745,4 +755,10 @@
-         (dav_namespace, "description"): (1, 1),
-     }
- 
-+class NumberOfMatchesWithinLimits (WebDAVEmptyElement):
-+    """
-+    Error which indicates too many results
-+    """
-+    name = "number-of-matches-within-limits"
-+
- # For DAV:description element (RFC 3744, section 9.5) see Description class above.

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc4331.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc4331.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.element.rfc4331.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,60 +0,0 @@
-Index: twisted/web2/dav/element/rfc4331.py
-===================================================================
---- twisted/web2/dav/element/rfc4331.py	(revision 0)
-+++ twisted/web2/dav/element/rfc4331.py	(revision 0)
-@@ -0,0 +1,55 @@
-+##
-+# Copyright (c) 2005-2007 Apple Inc. All rights reserved.
-+#
-+# Permission is hereby granted, free of charge, to any person obtaining a copy
-+# of this software and associated documentation files (the "Software"), to deal
-+# in the Software without restriction, including without limitation the rights
-+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-+# copies of the Software, and to permit persons to whom the Software is
-+# furnished to do so, subject to the following conditions:
-+# 
-+# The above copyright notice and this permission notice shall be included in all
-+# copies or substantial portions of the Software.
-+# 
-+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-+# SOFTWARE.
-+#
-+# DRI: Cyrus Daboo, cdaboo at apple.com
-+##
-+
-+"""
-+RFC 4331 (Quota and Size Properties for WebDAV Collections) XML Elements
-+
-+This module provides XML element definitions for use with WebDAV.
-+
-+See RFC 4331: http://www.ietf.org/rfc/rfc4331.txt
-+"""
-+
-+from twisted.web2.dav.element.base import WebDAVTextElement
-+
-+##
-+# Section 3 & 4 (Quota Properties)
-+##
-+
-+class QuotaAvailableBytes (WebDAVTextElement):
-+    """
-+    Property which contains the the number of bytes available under the
-+    current quota to store data in a collection (RFC 4331, section 3)
-+    """
-+    name = "quota-available-bytes"
-+    hidden = True
-+    protected = True
-+
-+class QuotaUsedBytes (WebDAVTextElement):
-+    """
-+    Property which contains the the number of bytes used under the
-+    current quota to store data in a collection (RFC 4331, section 4)
-+    """
-+    name = "quota-used-bytes"
-+    hidden = True
-+    protected = True

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.fileop.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.fileop.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.fileop.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,31 +0,0 @@
-Index: twisted/web2/dav/fileop.py
-===================================================================
---- twisted/web2/dav/fileop.py	(revision 26343)
-+++ twisted/web2/dav/fileop.py	(working copy)
-@@ -35,6 +35,7 @@
-     "move",
-     "put",
-     "mkcollection",
-+    "rmdir",
- ]
- 
- import os
-@@ -287,7 +288,7 @@
-                     response = waitForDeferred(copy(FilePath(source_path), FilePath(destination_path), destination_uri, depth))
-                     yield response
-                     response = response.getResult()
--                    checkResponse(response, "copy", responsecode.NO_CONTENT)
-+                    checkResponse(response, "copy", responsecode.CREATED, responsecode.NO_CONTENT)
- 
-             for subdir in subdirs:
-                 source_path, destination_path = paths(dir, subdir)
-@@ -507,7 +508,5 @@
-     os.rmdir(dirname)
- 
- def checkResponse(response, method, *codes):
--    assert (
--        response in codes,
--        "%s() should have raised, but returned one of %r instead" % (method, codes)
--    )
-+    assert  response in codes, \
-+        "%s() returned %r, but should have returned one of %r instead" % (method, response, codes)

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.http.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.http.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.http.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,27 +0,0 @@
-Index: twisted/web2/dav/http.py
-===================================================================
---- twisted/web2/dav/http.py	(revision 26343)
-+++ twisted/web2/dav/http.py	(working copy)
-@@ -28,10 +28,13 @@
- 
- __all__ = [
-     "ErrorResponse",
-+    "NeedPrivilegesResponse",
-     "MultiStatusResponse",
-     "ResponseQueue",
-     "PropertyStatusResponseQueue",
-     "statusForFailure",
-+    "errorForFailure",
-+    "messageForFailure",
- ]
- 
- import errno
-@@ -226,7 +229,7 @@
- 
-         if len(property.children) > 0:
-             # Re-instantiate as empty element.
--            property = property.__class__()
-+            property = property.emptyCopy()
- 
-         if code > 400: # Error codes only
-             log.err("Error during %s for %s: %s" % (self.method, property, message))

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.idav.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.idav.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.idav.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,157 +0,0 @@
-Index: twisted/web2/dav/idav.py
-===================================================================
---- twisted/web2/dav/idav.py	(revision 19773)
-+++ twisted/web2/dav/idav.py	(working copy)
-@@ -26,7 +26,7 @@
- web2.dav interfaces.
- """
- 
--__all__ = [ "IDAVResource", "IDAVPrincipalResource" ]
-+__all__ = [ "IDAVResource", "IDAVPrincipalResource", "IDAVPrincipalCollectionResource", ]
- 
- from twisted.web2.iweb import IResource
- 
-@@ -41,7 +41,7 @@
-             otherwise.
-         """
- 
--    def findChildren(depth, request, callback, privileges):
-+    def findChildren(depth, request, callback, privileges, inherited_aces):
-         """
-         Returns an iterable of child resources for the given depth.
-         Because resources do not know their request URIs, chidren are returned
-@@ -52,6 +52,8 @@
-         @param callback: C{callable} that will be called for each child found
-         @param privileges: the list of L{Privilege}s to test for.  This should 
-             default to None.
-+        @param inherited_aces: a list of L{Privilege}s for aces being inherited from
-+            the parent collection used to bypass inheritance lookup.
-         @return: An L{Deferred} that fires when all the children have been found
-         """
- 
-@@ -125,15 +127,10 @@
-             L{responsecode.UNAUTHORIZED}) if not authorized.
-         """
- 
--    def principalCollections(request):
-+    def principalCollections():
-         """
--        Provides the DAV:HRef's of collection resources which contain principal
--        resources which may be used in access control entries on this resource.
--        (RFC 3744, section 5.8)
--        @param request: the request being processed.
--        @return: a deferred sequence of L{davxml.HRef}s referring to
--            collection resources which implement the
--            C{DAV:principal-property-search} C{REPORT}.
-+        @return: an interable of L{IDAVPrincipalCollectionResource}s which
-+            contain principals used in ACLs for this resource.
-         """
- 
-     def setAccessControlList(acl):
-@@ -180,6 +177,80 @@
-             the specified principal.
-         """
- 
-+    ##
-+    # Quota
-+    ##
-+    
-+    def quota(request):
-+        """
-+        Get current available & used quota values for this resource's quota root
-+        collection.
-+
-+        @return: a C{tuple} containing two C{int}'s the first is 
-+            quota-available-bytes, the second is quota-used-bytes, or
-+            C{None} if quota is not defined on the resource.
-+        """
-+    
-+    def hasQuota(request):
-+        """
-+        Check whether this resource is undre quota control by checking each parent to see if
-+        it has a quota root.
-+        
-+        @return: C{True} if under quota control, C{False} if not.
-+        """
-+        
-+    def hasQuotaRoot(request):
-+        """
-+        Determine whether the resource has a quota root.
-+
-+        @return: a C{True} if this resource has quota root, C{False} otherwise.
-+        """
-+    
-+
-+    def quotaRoot(request):
-+        """
-+        Get the quota root (max. allowed bytes) value for this collection.
-+
-+        @return: a C{int} containing the maximum allowed bytes if this collection
-+            is quota-controlled, or C{None} if not quota controlled.
-+        """
-+    
-+    def setQuotaRoot(request, maxsize):
-+        """
-+        Set the quota root (max. allowed bytes) value for this collection.
-+
-+        @param maxsize: a C{int} containing the maximum allowed bytes for the contents
-+            of this collection.
-+        """
-+    
-+    def quotaSize(request):
-+        """
-+        Get the size of this resource (if its a collection get total for all children as well).
-+        TODO: Take into account size of dead-properties.
-+
-+        @return: a L{Deferred} with a C{int} result containing the size of the resource.
-+        """
-+        
-+    def currentQuotaUse(request):
-+        """
-+        Get the cached quota use value, or if not present (or invalid) determine
-+        quota use by brute force.
-+
-+        @return: an L{Deferred} with a C{int} result containing the current used byte count if
-+            this collection is quota-controlled, or C{None} if not quota controlled.
-+        """
-+        
-+    def updateQuotaUse(request, adjust):
-+        """
-+        Adjust current quota use on this all all parent collections that also
-+        have quota roots.
-+
-+        @param adjust: a C{int} containing the number of bytes added (positive) or
-+        removed (negative) that should be used to adjust the cached total.
-+        @return: an L{Deferred} with a C{int} result containing the current used byte if this collection
-+            is quota-controlled, or C{None} if not quota controlled.
-+        """
-+
- class IDAVPrincipalResource (IDAVResource):
-     """
-     WebDAV principal resource.  (RFC 3744, section 2)
-@@ -203,12 +274,23 @@
-         """
-         Provides the principal URLs of principals that are direct members of
-         this (group) principal.  (RFC 3744, section 4.3)
--        @return: a iterable of principal URLs.
-+        @return: a deferred returning an iterable of principal URLs.
-         """
- 
-     def groupMemberships():
-         """
-         Provides the URLs of the group principals in which the principal is
-         directly a member.  (RFC 3744, section 4.4)
--        @return: a iterable of group principal URLs.
-+        @return: a deferred containing an iterable of group principal URLs.
-         """
-+
-+class IDAVPrincipalCollectionResource (IDAVResource):
-+    """
-+    WebDAV principal collection resource.  (RFC 3744, section 5.8)
-+    """
-+    def principalCollectionURL():
-+        """
-+        Provides a URL for this resource which may be used to identify this
-+        resource in ACL requests.  (RFC 3744, section 5.8)
-+        @return: a URL.
-+        """

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.test.util.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,107 +0,0 @@
-Index: twisted/web2/dav/test/util.py
-===================================================================
---- twisted/web2/dav/test/util.py	(revision 26346)
-+++ twisted/web2/dav/test/util.py	(working copy)
-@@ -117,48 +117,54 @@
- 
-     grantInherit = staticmethod(grantInherit)
- 
--    def _getDocumentRoot(self):
--        if not hasattr(self, "_docroot"):
--            log.msg("Setting up docroot for %s" % (self.__class__,))
-+    def createDocumentRoot(self):
-+        docroot = self.mktemp()
-+        os.mkdir(docroot)
-+        rootresource = self.resource_class(docroot)
-+        rootresource.setAccessControlList(self.grantInherit(davxml.All()))
- 
--            docroot = self.mktemp()
--            os.mkdir(docroot)
--            rootresource = self.resource_class(docroot)
--            rootresource.setAccessControlList(self.grantInherit(davxml.All()))
-+        dirnames = (
-+            os.path.join(docroot, "dir1"),                          # 0
-+            os.path.join(docroot, "dir2"),                          # 1
-+            os.path.join(docroot, "dir2", "subdir1"),               # 2
-+            os.path.join(docroot, "dir3"),                          # 3
-+            os.path.join(docroot, "dir4"),                          # 4
-+            os.path.join(docroot, "dir4", "subdir1"),               # 5
-+            os.path.join(docroot, "dir4", "subdir1", "subsubdir1"), # 6
-+            os.path.join(docroot, "dir4", "subdir2"),               # 7
-+            os.path.join(docroot, "dir4", "subdir2", "dir1"),       # 8
-+            os.path.join(docroot, "dir4", "subdir2", "dir2"),       # 9
-+        )
- 
--            dirnames = (
--                os.path.join(docroot, "dir1"),                          # 0
--                os.path.join(docroot, "dir2"),                          # 1
--                os.path.join(docroot, "dir2", "subdir1"),               # 2
--                os.path.join(docroot, "dir3"),                          # 3
--                os.path.join(docroot, "dir4"),                          # 4
--                os.path.join(docroot, "dir4", "subdir1"),               # 5
--                os.path.join(docroot, "dir4", "subdir1", "subsubdir1"), # 6
--                os.path.join(docroot, "dir4", "subdir2"),               # 7
--                os.path.join(docroot, "dir4", "subdir2", "dir1"),       # 8
--                os.path.join(docroot, "dir4", "subdir2", "dir2"),       # 9
--            )
-+        for dir in dirnames:
-+            os.mkdir(dir)
- 
--            for dir in dirnames:
--                os.mkdir(dir)
-+        src = os.path.dirname(__file__)
-+        filenames = [
-+            os.path.join(src, f)
-+            for f in os.listdir(src)
-+            if os.path.isfile(os.path.join(src, f))
-+        ]
- 
--            src = os.path.dirname(__file__)
--            filenames = [
--                os.path.join(src, f)
--                for f in os.listdir(src)
--                if os.path.isfile(os.path.join(src, f))
--            ]
-+        for dirname in (docroot,) + dirnames[3:8+1]:
-+            for filename in filenames[:5]:
-+                copy(filename, dirname)
-+        return docroot
- 
--            for dirname in (docroot,) + dirnames[3:8+1]:
--                for filename in filenames[:5]:
--                    copy(filename, dirname)
- 
--            self._docroot = docroot
-+    def _getDocumentRoot(self):
-+        if not hasattr(self, "_docroot"):
-+            log.msg("Setting up docroot for %s" % (self.__class__,))
- 
-+            self._docroot = self.createDocumentRoot()
-+
-         return self._docroot
- 
--    docroot = property(_getDocumentRoot)
-+    def _setDocumentRoot(self, value):
-+        self._docroot = value
- 
-+    docroot = property(_getDocumentRoot, _setDocumentRoot)
-+
-     def _getSite(self):
-         if not hasattr(self, "_site"):
-             rootresource = self.resource_class(self.docroot)
-@@ -197,10 +203,11 @@
-         d.addCallback(lambda resource: resource.renderHTTP(request))
-         d.addCallback(request._cbFinishRender)
- 
--        if type(callback) is tuple:
--            d.addCallbacks(*callback)
--        else:
--            d.addCallback(callback)
-+        if callback:
-+            if type(callback) is tuple:
-+                d.addCallbacks(*callback)
-+            else:
-+                d.addCallback(callback)
- 
-         return d
- 

Deleted: CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.util.patch
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.util.patch	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/lib-patches/Twisted/twisted.web2.dav.util.patch	2009-03-19 21:04:34 UTC (rev 3900)
@@ -1,23 +0,0 @@
-Index: twisted/web2/dav/util.py
-===================================================================
---- twisted/web2/dav/util.py	(revision 19773)
-+++ twisted/web2/dav/util.py	(working copy)
-@@ -37,6 +37,7 @@
-     "normalizeURL",
-     "joinURL",
-     "parentForURL",
-+    "unimplemented",
-     "bindMethods",
- ]
- 
-@@ -76,7 +77,9 @@
- 
-     def parse(xml):
-         try:
--            return davxml.WebDAVDocument.fromString(xml)
-+            doc = davxml.WebDAVDocument.fromString(xml)
-+            doc.root_element.validate()
-+            return doc
-         except ValueError:
-             log.err("Bad XML:\n%s" % (xml,))
-             raise

Modified: CalendarServer/branches/exarkun/update-twisted-3816/run
===================================================================
--- CalendarServer/branches/exarkun/update-twisted-3816/run	2009-03-19 20:45:50 UTC (rev 3899)
+++ CalendarServer/branches/exarkun/update-twisted-3816/run	2009-03-19 21:04:34 UTC (rev 3900)
@@ -636,7 +636,7 @@
     ;;
 esac;
 svn_uri="${proto}://svn.twistedmatrix.com/svn/Twisted/branches/dav-take-two-3081-3";
-svn_get "Twisted" "${twisted}" "${svn_uri}" 26444;
+svn_get "Twisted" "${twisted}" "${svn_uri}" 26454;
 
 # No py_build step, since we tend to do edit Twisted, we want the sources in
 # PYTHONPATH, not a build directory.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090319/8522ecff/attachment-0001.html>


More information about the calendarserver-changes mailing list