summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrebs <drebs@leap.se>2017-12-06 19:24:39 -0200
committerdrebs <drebs@leap.se>2017-12-13 13:43:47 -0200
commitfc0725b0827b6f5e02f1d155712b106b3c8854c1 (patch)
treef4347e477725a17d291c5ac0826326430f7e687b
parent9f07826cd98448b38646b2c731f82f99ee37f7c4 (diff)
[refactor] make blobs backend list_blobs() agnostic of twisted.web requests
-rw-r--r--src/leap/soledad/server/_blobs.py13
-rw-r--r--src/leap/soledad/server/interfaces.py12
-rw-r--r--tests/blobs/test_fs_backend.py6
3 files changed, 13 insertions, 18 deletions
diff --git a/src/leap/soledad/server/_blobs.py b/src/leap/soledad/server/_blobs.py
index 89c5927e..2ba3fe91 100644
--- a/src/leap/soledad/server/_blobs.py
+++ b/src/leap/soledad/server/_blobs.py
@@ -157,8 +157,8 @@ class FilesystemBlobsBackend(object):
count += len(filter(lambda i: not i.endswith('.flags'), filenames))
return json.dumps({"count": count})
- def list_blobs(self, user, request, namespace='', order_by=None,
- deleted=False, filter_flag=False):
+ def list_blobs(self, user, namespace='', order_by=None, deleted=False,
+ filter_flag=False):
namespace = namespace or 'default'
blob_ids = []
base_path = self._get_path(user, namespace=namespace)
@@ -180,7 +180,7 @@ class FilesystemBlobsBackend(object):
blob_ids = list(self._filter_flag(blob_ids, filter_flag))
blob_ids = [os.path.basename(path).replace('.deleted', '')
for path in blob_ids]
- return json.dumps(blob_ids)
+ return blob_ids
def _filter_flag(self, blob_paths, flag):
for blob_path in blob_paths:
@@ -280,9 +280,10 @@ class BlobsResource(resource.Resource):
order = request.args.get('order_by', [None])[0]
filter_flag = request.args.get('filter_flag', [False])[0]
deleted = request.args.get('deleted', [False])[0]
- return self._handler.list_blobs(user, request, namespace,
- order_by=order, deleted=deleted,
- filter_flag=filter_flag)
+ blobs = self._handler.list_blobs(user, namespace,
+ order_by=order, deleted=deleted,
+ filter_flag=filter_flag)
+ return json.dumps(blobs)
only_flags = request.args.get('only_flags', [False])[0]
try:
if only_flags:
diff --git a/src/leap/soledad/server/interfaces.py b/src/leap/soledad/server/interfaces.py
index f9cc96c4..430cdec3 100644
--- a/src/leap/soledad/server/interfaces.py
+++ b/src/leap/soledad/server/interfaces.py
@@ -112,7 +112,7 @@ class IBlobsBackend(Interface):
:rtype: int
"""
- def list_blobs(user, request, namespace='', order_by=None, deleted=False,
+ def list_blobs(user, namespace='', order_by=None, deleted=False,
filter_flag=None):
"""
List the blobs stored in the backend.
@@ -122,12 +122,8 @@ class IBlobsBackend(Interface):
:param user: The id of the user who owns the blob.
:type user: str
- :param request: A representation of all of the information about the
- request that is being made.
- :type request: twisted.web.server.Request
:param namespace: Restrict the count to a certain namespace.
:type namespace: str
-
:param order_by: 'date' (equivalent to '+date') or '-date', to sort
ascending or descending by date, respectivelly.
:type order_by: str
@@ -137,9 +133,9 @@ class IBlobsBackend(Interface):
be returned.
:type filter_flag: str
- :return: A JSON list of blob ids, optionally ordered and/or restricted
- by namespace.
- :rtype: str
+ :return: A list of blob ids, optionally ordered and/or restricted by
+ namespace.
+ :rtype: list of str
"""
def get_total_storage(user):
diff --git a/tests/blobs/test_fs_backend.py b/tests/blobs/test_fs_backend.py
index eada044a..5df658ff 100644
--- a/tests/blobs/test_fs_backend.py
+++ b/tests/blobs/test_fs_backend.py
@@ -26,7 +26,6 @@ from mock import Mock
import mock
import os
import base64
-import json
import pytest
@@ -131,7 +130,7 @@ class FilesystemBackendTestCase(unittest.TestCase):
backend = _blobs.FilesystemBlobsBackend(blobs_path=self.tempdir)
_ = None
walk_mock.return_value = [('', _, ['blob_0']), ('', _, ['blob_1'])]
- result = json.loads(backend.list_blobs('user', DummyRequest([''])))
+ result = backend.list_blobs('user')
self.assertEquals(result, ['blob_0', 'blob_1'])
@pytest.mark.usefixtures("method_tmpdir")
@@ -140,8 +139,7 @@ class FilesystemBackendTestCase(unittest.TestCase):
backend = _blobs.FilesystemBlobsBackend(self.tempdir)
_ = None
walk_mock.return_value = [('', _, ['blob_0']), ('', _, ['blob_1'])]
- result = json.loads(backend.list_blobs('user', DummyRequest(['']),
- namespace='incoming'))
+ result = backend.list_blobs('user', namespace='incoming')
self.assertEquals(result, ['blob_0', 'blob_1'])
target_dir = os.path.join(self.tempdir, 'user', 'incoming')
walk_mock.assert_called_once_with(target_dir)