def test_normalizeURL(self): """ normalizeURL() """ self.assertEquals(util.normalizeURL("http://server//foo"), "http://server/foo") self.assertEquals(util.normalizeURL("http://server/foo/.."), "http://server/") self.assertEquals(util.normalizeURL("/foo/bar/..//"), "/foo") self.assertEquals(util.normalizeURL("/foo/bar/.//"), "/foo/bar") self.assertEquals(util.normalizeURL("//foo///bar/../baz"), "/foo/baz") self.assertEquals(util.normalizeURL("//foo///bar/./baz"), "/foo/bar/baz") self.assertEquals(util.normalizeURL("///../"), "/") self.assertEquals(util.normalizeURL("/.."), "/")
% (davxml.PropertyFind.sname(), container)) # # Generate XML output stream # request_uri = request.uri depth = request.headers.getHeader("depth", "infinity") xml_responses = [] resources = [(self, None)] resources.extend(self.findChildren(depth)) for resource, uri in resources: if uri is None: uri = normalizeURL(request_uri) if self.isCollection() and not uri.endswith("/"): uri += "/" else: uri = joinURL(request_uri, uri) resource_properties = waitForDeferred(resource.listProperties(request)) yield resource_properties resource_properties = resource_properties.getResult() if search_properties is "names": properties_by_status = { responsecode.OK: [propertyName(p) for p in resource_properties] } else: properties_by_status = { responsecode.OK : [],