[refactor] make get_blob_size() return a deferred
authordrebs <drebs@leap.se>
Fri, 8 Dec 2017 23:55:45 +0000 (21:55 -0200)
committerdrebs <drebs@leap.se>
Wed, 13 Dec 2017 15:43:48 +0000 (13:43 -0200)
src/leap/soledad/server/_blobs.py
src/leap/soledad/server/interfaces.py
tests/blobs/test_fs_backend.py

index f9166ce..21becbf 100644 (file)
@@ -151,7 +151,8 @@ class FilesystemBlobsBackend(object):
 
     def get_blob_size(self, user, blob_id, namespace=''):
         blob_path = self._get_path(user, blob_id, namespace)
-        return os.stat(blob_path).st_size
+        size = os.stat(blob_path).st_size
+        return defer.succeed(size)
 
     def count(self, user, namespace=''):
         base_path = self._get_path(user, namespace=namespace)
index f9257c9..a7caf91 100644 (file)
@@ -85,8 +85,8 @@ class IBlobsBackend(Interface):
         :param namespace: An optional namespace for the blob.
         :type namespace: str
 
-        :return: The size of the blob.
-        :rtype: int
+        :return: A deferred that fires with the size of the blob.
+        :rtype: twisted.internet.defer.Deferred
         """
 
     def count(user, namespace=''):
index 59b7976..69526cb 100644 (file)
@@ -45,6 +45,7 @@ class FilesystemBackendTestCase(unittest.TestCase):
         self.assertEquals(expected_tag, tag)
 
     @pytest.mark.usefixtures("method_tmpdir")
+    @defer.inlineCallbacks
     def test_get_blob_size(self):
         # get a backend
         backend = _blobs.FilesystemBlobsBackend(blobs_path=self.tempdir)
@@ -54,7 +55,7 @@ class FilesystemBackendTestCase(unittest.TestCase):
         with open(path, "w") as f:
             f.write("0123456789")
         # check it's size
-        size = backend.get_blob_size('user', 'blob_id', '')
+        size = yield backend.get_blob_size('user', 'blob_id', '')
         self.assertEquals(10, size)
 
     @pytest.mark.usefixtures("method_tmpdir")