diff options
| -rw-r--r-- | src/leap/soledad/client/_db/blobs.py | 35 | ||||
| -rw-r--r-- | testing/tests/blobs/test_blob_manager.py | 4 | 
2 files changed, 14 insertions, 25 deletions
diff --git a/src/leap/soledad/client/_db/blobs.py b/src/leap/soledad/client/_db/blobs.py index 1b4d9114..4a3cd913 100644 --- a/src/leap/soledad/client/_db/blobs.py +++ b/src/leap/soledad/client/_db/blobs.py @@ -224,13 +224,11 @@ class BlobManager(object):          data = yield self._client.get(uri, params=params)          defer.returnValue((yield data.json())) -    def local_list(self, namespace='default'): -        assert namespace +    def local_list(self, namespace=''):          return self.local.list(namespace)      @defer.inlineCallbacks -    def send_missing(self, namespace='default'): -        assert namespace +    def send_missing(self, namespace=''):          our_blobs = yield self.local_list(namespace)          server_blobs = yield self.remote_list(namespace=namespace)          missing = [b_id for b_id in our_blobs if b_id not in server_blobs] @@ -242,8 +240,7 @@ class BlobManager(object):              yield self._encrypt_and_upload(blob_id, fd)      @defer.inlineCallbacks -    def fetch_missing(self, namespace='default'): -        assert namespace +    def fetch_missing(self, namespace=''):          # TODO: Use something to prioritize user requests over general new docs          our_blobs = yield self.local_list(namespace)          server_blobs = yield self.remote_list(namespace=namespace) @@ -255,8 +252,7 @@ class BlobManager(object):              yield self.get(blob_id, namespace)      @defer.inlineCallbacks -    def put(self, doc, size, namespace='default'): -        assert namespace +    def put(self, doc, size, namespace=''):          if (yield self.local.exists(doc.blob_id, namespace)):              error_message = "Blob already exists: %s" % doc.blob_id              raise BlobAlreadyExistsError(error_message) @@ -318,8 +314,7 @@ class BlobManager(object):          defer.returnValue((yield response.json()))      @defer.inlineCallbacks -    def get(self, blob_id, namespace='default'): -        assert namespace +    def get(self, blob_id, namespace=''):          local_blob = yield self.local.get(blob_id, namespace=namespace)          if local_blob:              logger.info("Found blob in local database: %s" % blob_id) @@ -364,8 +359,7 @@ class BlobManager(object):          logger.info("Finished upload: %s" % (blob_id,))      @defer.inlineCallbacks -    def _download_and_decrypt(self, blob_id, namespace='default'): -        assert namespace +    def _download_and_decrypt(self, blob_id, namespace=''):          logger.info("Staring download of blob: %s" % blob_id)          # TODO this needs to be connected in a tube          uri = urljoin(self.remote, self.user + '/' + blob_id) @@ -389,7 +383,7 @@ class BlobManager(object):          defer.returnValue((fd, size))      @defer.inlineCallbacks -    def delete(self, blob_id, namespace='default', **params): +    def delete(self, blob_id, namespace='', **params):          """          Deletes a blob from local and remote storages.          :param blob_id: @@ -401,7 +395,6 @@ class BlobManager(object):          :return: A deferred that fires when the operation finishes.          :rtype: twisted.internet.defer.Deferred          """ -        assert namespace          params['namespace'] = namespace          logger.info("Staring deletion of blob: %s" % blob_id)          yield self._delete_from_remote(blob_id, **params) @@ -441,8 +434,7 @@ class SQLiteBlobBackend(object):              pass      @defer.inlineCallbacks -    def put(self, blob_id, blob_fd, size=None, namespace='default'): -        assert namespace +    def put(self, blob_id, blob_fd, size=None, namespace=''):          logger.info("Saving blob in local database...")          insert = 'INSERT INTO blobs (blob_id, namespace, payload) '          insert += 'VALUES (?, ?, zeroblob(?))' @@ -461,18 +453,16 @@ class SQLiteBlobBackend(object):          defer.returnValue(done)      @defer.inlineCallbacks -    def get(self, blob_id, namespace='default'): +    def get(self, blob_id, namespace=''):          # TODO we can also stream the blob value using sqlite          # incremental interface for blobs - and just return the raw fd instead -        assert namespace          select = 'SELECT payload FROM blobs WHERE blob_id = ? AND namespace= ?'          result = yield self.dbpool.runQuery(select, (blob_id, namespace,))          if result:              defer.returnValue(BytesIO(str(result[0][0])))      @defer.inlineCallbacks -    def list(self, namespace='default'): -        assert namespace +    def list(self, namespace=''):          query = 'select blob_id from blobs where namespace = ?'          result = yield self.dbpool.runQuery(query, (namespace,))          if result: @@ -490,13 +480,12 @@ class SQLiteBlobBackend(object):              defer.returnValue([])      @defer.inlineCallbacks -    def exists(self, blob_id, namespace='default'): +    def exists(self, blob_id, namespace=''):          query = 'SELECT blob_id from blobs WHERE blob_id = ? AND namespace= ?'          result = yield self.dbpool.runQuery(query, (blob_id, namespace,))          defer.returnValue(bool(len(result))) -    def delete(self, blob_id, namespace='default'): -        assert namespace +    def delete(self, blob_id, namespace=''):          query = 'DELETE FROM blobs WHERE blob_id = ? AND namespace = ?'          return self.dbpool.runQuery(query, (blob_id, namespace,)) diff --git a/testing/tests/blobs/test_blob_manager.py b/testing/tests/blobs/test_blob_manager.py index 3f0bf8c4..087c17e6 100644 --- a/testing/tests/blobs/test_blob_manager.py +++ b/testing/tests/blobs/test_blob_manager.py @@ -50,7 +50,7 @@ class BlobManagerTestCase(unittest.TestCase):          bad_blob_id = 'inexsistent_id'          result = yield self.manager.get(bad_blob_id)          self.assertIsNone(result) -        args = bad_blob_id, 'default' +        args = bad_blob_id, ''          self.manager._download_and_decrypt.assert_called_once_with(*args)      @defer.inlineCallbacks @@ -143,5 +143,5 @@ class BlobManagerTestCase(unittest.TestCase):          yield self.manager.delete(blob_id)          local_list = yield self.manager.local_list()          self.assertEquals(0, len(local_list)) -        params = {'namespace': 'default'} +        params = {'namespace': ''}          self.manager._delete_from_remote.assert_called_with(blob_id, **params)  | 
