From d574e734e19d5350992bc1aeb00014c41a444add Mon Sep 17 00:00:00 2001
From: Victor Shyba <victor1984@riseup.net>
Date: Mon, 27 Nov 2017 09:44:51 -0300
Subject: [PATCH] [feature] add implementation for get_blob_size

---
 src/leap/soledad/server/_blobs.py |  3 ++-
 tests/blobs/test_fs_backend.py    | 13 +++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/leap/soledad/server/_blobs.py b/src/leap/soledad/server/_blobs.py
index 5670c562..5f5ae5ac 100644
--- a/src/leap/soledad/server/_blobs.py
+++ b/src/leap/soledad/server/_blobs.py
@@ -144,7 +144,8 @@ class FilesystemBlobsBackend(object):
             pass
 
     def get_blob_size(self, user, blob_id, namespace=''):
-        raise NotImplementedError
+        blob_path = self._get_path(user, blob_id, namespace)
+        return os.stat(blob_path).st_size
 
     def count(self, user, request, namespace=''):
         base_path = self._get_path(user, namespace=namespace)
diff --git a/tests/blobs/test_fs_backend.py b/tests/blobs/test_fs_backend.py
index 47d78ad4..94b628c4 100644
--- a/tests/blobs/test_fs_backend.py
+++ b/tests/blobs/test_fs_backend.py
@@ -51,6 +51,19 @@ class FilesystemBackendTestCase(unittest.TestCase):
 
         expected_method.assert_called_once_with('Tag', [expected_tag])
 
+    @pytest.mark.usefixtures("method_tmpdir")
+    def test_get_blob_size(self):
+        # get a backend
+        backend = _blobs.FilesystemBlobsBackend(blobs_path=self.tempdir)
+        # write a blob with size=10
+        path = backend._get_path('user', 'blob_id', '')
+        mkdir_p(os.path.split(path)[0])
+        with open(path, "w") as f:
+            f.write("0123456789")
+        # check it's size
+        size = backend.get_blob_size('user', 'blob_id', '')
+        self.assertEquals(10, size)
+
     @pytest.mark.usefixtures("method_tmpdir")
     @mock.patch.object(_blobs.static, 'File')
     @mock.patch.object(_blobs.FilesystemBlobsBackend, '_get_path',
-- 
GitLab