MCPcopy Create free account
hub / github.com/CloudPolis/webdav-client-python / free

Method free

webdav/client.py:227–274  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

225 raise NotConnection(self.webdav.hostname)
226
227 def free(self):
228
229 def parse(response):
230
231 try:
232 response_str = response.getvalue()
233 tree = etree.fromstring(response_str)
234 node = tree.find('.//{DAV:}quota-available-bytes')
235 if node is not None:
236 return int(node.text)
237 else:
238 raise MethodNotSupported(name='free', server=self.webdav.hostname)
239 except TypeError:
240 raise MethodNotSupported(name='free', server=self.webdav.hostname)
241 except etree.XMLSyntaxError:
242 return str()
243
244 def data():
245
246 root = etree.Element("propfind", xmlns="DAV:")
247 prop = etree.SubElement(root, "prop")
248 etree.SubElement(prop, "quota-available-bytes")
249 etree.SubElement(prop, "quota-used-bytes")
250 tree = etree.ElementTree(root)
251 buff = BytesIO()
252 tree.write(buff)
253 return buff.getvalue()
254
255 try:
256 response = BytesIO()
257
258 options = {
259 'CUSTOMREQUEST': Client.requests['free'],
260 'HTTPHEADER': self.get_header('free'),
261 'POSTFIELDS': data(),
262 'WRITEDATA': response,
263 'NOBODY': 0
264 }
265
266 request = self.Request(options=options)
267
268 request.perform()
269 request.close()
270
271 return parse(response)
272
273 except pycurl.error:
274 raise NotConnection(self.webdav.hostname)
275
276 def check(self, remote_path=root):
277

Callers

nothing calls this directly

Calls 3

get_headerMethod · 0.95
RequestMethod · 0.95
NotConnectionClass · 0.85

Tested by

no test coverage detected