[CalendarServer-changes] [7522] CalDAVClientLibrary/trunk/src/protocol/webdav
source_changes at macosforge.org
source_changes at macosforge.org
Wed May 25 06:52:59 PDT 2011
Revision: 7522
http://trac.macosforge.org/projects/calendarserver/changeset/7522
Author: exarkun at twistedmatrix.com
Date: 2011-05-25 06:52:57 -0700 (Wed, 25 May 2011)
Log Message:
-----------
Observe {DAV:}status elements inside {DAV:}response elements and make their values available on the parse result object.
Modified Paths:
--------------
CalDAVClientLibrary/trunk/src/protocol/webdav/propfindparser.py
CalDAVClientLibrary/trunk/src/protocol/webdav/tests/test_propfindparser.py
Modified: CalDAVClientLibrary/trunk/src/protocol/webdav/propfindparser.py
===================================================================
--- CalDAVClientLibrary/trunk/src/protocol/webdav/propfindparser.py 2011-05-24 21:34:57 UTC (rev 7521)
+++ CalDAVClientLibrary/trunk/src/protocol/webdav/propfindparser.py 2011-05-25 13:52:57 UTC (rev 7522)
@@ -29,6 +29,7 @@
class PropFindResult(object):
def __init__(self):
+ self.status = None
self.textProperties = {}
self.hrefProperties = {}
self.nodeProperties = {}
@@ -38,6 +39,11 @@
self.resource = resource
def getResource(self):
return self.resource
+
+ def setStatus(self, status):
+ self.status = status
+ def getStatus(self):
+ return self.status
def addTextProperty(self, name, value):
self.textProperties[name] = value
@@ -82,6 +88,9 @@
# Is it propstat
elif child.tag == davxml.propstat:
self.parsePropStat(child, result)
+
+ elif child.tag == davxml.status:
+ result.setStatus(child.text)
# Add the resource only if we got one
if result.getResource():
Modified: CalDAVClientLibrary/trunk/src/protocol/webdav/tests/test_propfindparser.py
===================================================================
--- CalDAVClientLibrary/trunk/src/protocol/webdav/tests/test_propfindparser.py 2011-05-24 21:34:57 UTC (rev 7521)
+++ CalDAVClientLibrary/trunk/src/protocol/webdav/tests/test_propfindparser.py 2011-05-25 13:52:57 UTC (rev 7522)
@@ -119,3 +119,17 @@
(davxml.getetag, "2",),
(davxml.displayname, "Name2",),
))
+
+
+ def test_ResourceNotFound(self):
+ parser = self.parseXML("""<?xml version='1.0' encoding='UTF-8'?>
+<multistatus xmlns='DAV:'>
+ <response>
+ <href>/calendars/__uids__/user01/inbox/event.ics</href>
+ <status>HTTP/1.1 404 Not Found</status>
+ </response>
+</multistatus>
+""")
+ results = parser.getResults()
+ result = results["/calendars/__uids__/user01/inbox/event.ics"]
+ self.assertEqual("HTTP/1.1 404 Not Found", result.getStatus())
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110525/608490d7/attachment.html>
More information about the calendarserver-changes
mailing list