summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2017-11-27 09:44:51 -0300
committerVictor Shyba <victor1984@riseup.net>2017-12-01 01:38:08 -0300
commitd574e734e19d5350992bc1aeb00014c41a444add (patch)
tree6dc965a8467c5d83f057d2ca7d01ab2e5c01fb1d
parent5c8109086429211b8f9f1444f1b56a285e49dd6a (diff)
[feature] add implementation for get_blob_size
-rw-r--r--src/leap/soledad/server/_blobs.py3
-rw-r--r--tests/blobs/test_fs_backend.py13
2 files changed, 15 insertions, 1 deletions
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
@@ -52,6 +52,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',
Mock(return_value='path'))