From d574e734e19d5350992bc1aeb00014c41a444add Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Mon, 27 Nov 2017 09:44:51 -0300 Subject: [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', -- cgit v1.2.3