Skip broken props in get_multi

This commit is contained in:
Markus Unterwaditzer 2014-12-07 17:15:52 +01:00
parent 25aff68b50
commit ee3f0ad300

View file

@ -310,14 +310,18 @@ class DavStorage(Storage):
for element in root.iter('{DAV:}response'): for element in root.iter('{DAV:}response'):
href = self._normalize_href( href = self._normalize_href(
element.find('{DAV:}href').text) element.find('{DAV:}href').text)
raw = element \
.find('{DAV:}propstat') \ try:
.find('{DAV:}prop') \ prop = element.find('{DAV:}propstat').find('{DAV:}prop')
.find(self.get_multi_data_query).text raw = prop.find(self.get_multi_data_query).text
etag = element \ etag = prop.find('{DAV:}getetag').text
.find('{DAV:}propstat') \ if not raw or not etag:
.find('{DAV:}prop') \ raise AttributeError()
.find('{DAV:}getetag').text except AttributeError:
dav_logger.warning('Skipping {}, properties are missing.'
.format(href))
continue
if isinstance(raw, bytes): if isinstance(raw, bytes):
raw = raw.decode(response.encoding) raw = raw.decode(response.encoding)
if isinstance(etag, bytes): if isinstance(etag, bytes):