summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrebs <drebs@leap.se>2017-12-06 18:09:40 -0200
committerdrebs <drebs@leap.se>2017-12-13 13:43:47 -0200
commit6f29df7d0a8c68fb5aaf4de38d68b8c3de1a4aaa (patch)
treee27ccf85a1c5722571ca012b348ed4e49e60017e
parent87413812397c24db807643c99ce0c42803cc7e43 (diff)
[refactor] make blobs backend count() agnostic of twisted.web requests
-rw-r--r--src/leap/soledad/server/_blobs.py4
-rw-r--r--src/leap/soledad/server/interfaces.py5
-rw-r--r--tests/blobs/test_fs_backend.py14
3 files changed, 7 insertions, 16 deletions
diff --git a/src/leap/soledad/server/_blobs.py b/src/leap/soledad/server/_blobs.py
index 8393d5bf..8e9d9524 100644
--- a/src/leap/soledad/server/_blobs.py
+++ b/src/leap/soledad/server/_blobs.py
@@ -152,7 +152,7 @@ class FilesystemBlobsBackend(object):
blob_path = self._get_path(user, blob_id, namespace)
return os.stat(blob_path).st_size
- def count(self, user, request, namespace=''):
+ def count(self, user, namespace=''):
base_path = self._get_path(user, namespace=namespace)
count = 0
for _, _, filenames in os.walk(base_path):
@@ -277,7 +277,7 @@ class BlobsResource(resource.Resource):
logger.info("http get: %s" % request.path)
user, blob_id, namespace = self._validate(request)
if not blob_id and request.args.get('only_count', [False])[0]:
- return self._handler.count(user, request, namespace)
+ return self._handler.count(user, namespace)
elif not blob_id:
order = request.args.get('order_by', [None])[0]
filter_flag = request.args.get('filter_flag', [False])[0]
diff --git a/src/leap/soledad/server/interfaces.py b/src/leap/soledad/server/interfaces.py
index 15603047..d19a0adc 100644
--- a/src/leap/soledad/server/interfaces.py
+++ b/src/leap/soledad/server/interfaces.py
@@ -98,15 +98,12 @@ class IBlobsBackend(Interface):
:rtype: int
"""
- def count(user, request, namespace=''):
+ def count(user, namespace=''):
"""
Count the total number of blobs.
: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
diff --git a/tests/blobs/test_fs_backend.py b/tests/blobs/test_fs_backend.py
index da328dab..eada044a 100644
--- a/tests/blobs/test_fs_backend.py
+++ b/tests/blobs/test_fs_backend.py
@@ -22,7 +22,6 @@ from twisted.internet import defer
from twisted.web.test.test_web import DummyRequest
from leap.common.files import mkdir_p
from leap.soledad.server import _blobs
-from io import BytesIO
from mock import Mock
import mock
import os
@@ -34,22 +33,17 @@ import pytest
class FilesystemBackendTestCase(unittest.TestCase):
@pytest.mark.usefixtures("method_tmpdir")
- @mock.patch.object(_blobs, 'open')
- def test_tag_header(self, open_mock):
- open_mock.return_value = BytesIO('A' * 40 + 'B' * 16)
+ def test_get_tag(self):
expected_tag = base64.urlsafe_b64encode('B' * 16)
- expected_method = Mock()
backend = _blobs.FilesystemBlobsBackend(blobs_path=self.tempdir)
# write a blob...
path = backend._get_path('user', 'blob_id', '')
mkdir_p(os.path.split(path)[0])
with open(path, "w") as f:
- f.write("bl0b")
+ f.write('A' * 40 + 'B' * 16)
# ...and get its tag
- request = Mock(responseHeaders=Mock(setRawHeaders=expected_method))
- backend.add_tag_header('user', 'blob_id', request)
-
- expected_method.assert_called_once_with('Tag', [expected_tag])
+ tag = backend.get_tag('user', 'blob_id')
+ self.assertEquals(expected_tag, tag)
@pytest.mark.usefixtures("method_tmpdir")
def test_get_blob_size(self):