[CalendarServer-changes] [7967] CalendarServer/branches/users/glyph/imip-and-admin-html/ calendarserver/webadmin

source_changes at macosforge.org source_changes at macosforge.org
Thu Aug 11 21:52:45 PDT 2011


Revision: 7967
          http://trac.macosforge.org/projects/calendarserver/changeset/7967
Author:   glyph at apple.com
Date:     2011-08-11 21:52:45 -0700 (Thu, 11 Aug 2011)
Log Message:
-----------
new renderer actually has better behavior for not-found properties

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py
    CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/test/test_resource.py

Modified: CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py
===================================================================
--- CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py	2011-08-12 04:52:33 UTC (rev 7966)
+++ CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/resource.py	2011-08-12 04:52:45 UTC (rev 7967)
@@ -42,6 +42,7 @@
 from twext.web2.http_headers import MimeType
 from zope.interface.declarations import implements
 from twext.web2.stream import MemoryStream
+from twext.web2.http import HTTPError
 from twext.web2.dav import davxml
 
 from twisted.web.iweb import ITemplateLoader
@@ -235,10 +236,16 @@
         name.
         """
         if self.error is None:
-            propval = yield self.principalResource.readProperty(
-                (self.namespace, self.name), request
-            )
-            returnValue(tag.fillSlots(value=propval.toxml()))
+            try:
+                propval = yield self.principalResource.readProperty(
+                    (self.namespace, self.name), request
+                )
+            except HTTPError:
+                propval = "No such property: " + "#".join([self.namespace,
+                                                           self.name])
+            else:
+                propval = propval.toxml()
+            returnValue(tag.fillSlots(value=propval))
         else:
             returnValue("")
 

Modified: CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/test/test_resource.py
===================================================================
--- CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/test/test_resource.py	2011-08-12 04:52:33 UTC (rev 7966)
+++ CalendarServer/branches/users/glyph/imip-and-admin-html/calendarserver/webadmin/test/test_resource.py	2011-08-12 04:52:45 UTC (rev 7967)
@@ -417,3 +417,20 @@
         returnValue((yield super(NewRenderingTests, self).renderPage(args)))
 
 
+    @inlineCallbacks
+    def test_noDavProperty(self):
+        """
+        When a DAV property is not found, an error will be displayed.
+        """
+        self.resource.getResourceById = partial(FakePrincipalResource, self)
+        document = yield self.renderPage(
+            dict(resourceId=["qux"],
+                 davPropertyName=["DAV:#blub"])
+        )
+        propertyName = document.getElementById('txt_davPropertyName')
+        self.assertEquals(propertyName.getAttribute("value"),
+                          "DAV:#blub")
+        propertyValue = "No such property: DAV:#blub"
+        self.assertIn(cgi.escape(propertyValue),
+                      gatherTextNodes(document))
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110811/b5d38198/attachment.html>


More information about the calendarserver-changes mailing list