From 6f29df7d0a8c68fb5aaf4de38d68b8c3de1a4aaa Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 6 Dec 2017 18:09:40 -0200 Subject: [refactor] make blobs backend count() agnostic of twisted.web requests --- src/leap/soledad/server/_blobs.py | 4 ++-- src/leap/soledad/server/interfaces.py | 5 +---- tests/blobs/test_fs_backend.py | 14 ++++---------- 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): -- cgit v1.2.3