(self)
| 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 |
nothing calls this directly
no test coverage detected