class CombinedStorage(Storage): '''A subclass of HttpStorage to make testing easier. It supports writes via SingleFileStorage.''' _repr_attributes = ('url', 'path') def __init__(self, url, path, **kwargs): if kwargs.get('collection', None) is not None: raise ValueError() super(CombinedStorage, self).__init__(**kwargs) self.url = url self.path = path self._reader = vdirsyncer.storage.http.HttpStorage(url=url) self._reader._ignore_uids = False self._writer = SingleFileStorage(path=path) def list(self, *a, **kw): return self._reader.list(*a, **kw) def get(self, *a, **kw): self.list() return self._reader.get(*a, **kw) def upload(self, *a, **kw): return self._writer.upload(*a, **kw) def update(self, *a, **kw): return self._writer.update(*a, **kw) def delete(self, *a, **kw): return self._writer.delete(*a, **kw)
class CombinedStorage(Storage): """A subclass of HttpStorage to make testing easier. It supports writes via SingleFileStorage.""" _repr_attributes = ("url", "path") storage_name = "http_and_singlefile" def __init__(self, url, path, **kwargs): if kwargs.get("collection", None) is not None: raise ValueError() super().__init__(**kwargs) self.url = url self.path = path self._reader = vdirsyncer.storage.http.HttpStorage(url=url) self._reader._ignore_uids = False self._writer = SingleFileStorage(path=path) def list(self, *a, **kw): return self._reader.list(*a, **kw) def get(self, *a, **kw): self.list() return self._reader.get(*a, **kw) def upload(self, *a, **kw): return self._writer.upload(*a, **kw) def update(self, *a, **kw): return self._writer.update(*a, **kw) def delete(self, *a, **kw): return self._writer.delete(*a, **kw)