[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