[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