diff options
| -rw-r--r-- | src/leap/soledad/server/_blobs.py | 3 | ||||
| -rw-r--r-- | testing/tests/server/test_blobs_server.py | 12 | 
2 files changed, 14 insertions, 1 deletions
| diff --git a/src/leap/soledad/server/_blobs.py b/src/leap/soledad/server/_blobs.py index dc2c204c..f7db9218 100644 --- a/src/leap/soledad/server/_blobs.py +++ b/src/leap/soledad/server/_blobs.py @@ -143,6 +143,7 @@ class FilesystemBlobsBackend(object):      def list_blobs(self, user, request, namespace='', order_by=None,                     filter_flag=False): +        namespace = namespace or 'default'          blob_ids = []          base_path = self._get_path(user, namespace=namespace)          for root, dirs, filenames in os.walk(base_path): @@ -286,7 +287,7 @@ class BlobsResource(resource.Resource):          for arg in request.postpath:              if arg and not VALID_STRINGS.match(arg):                  raise Exception('Invalid blob resource argument: %s' % arg) -        namespace = request.args.get('namespace', [''])[0] +        namespace = request.args.get('namespace', ['default'])[0]          if namespace and not VALID_STRINGS.match(namespace):              raise Exception('Invalid blob namespace: %s' % namespace)          return request.postpath + [namespace] diff --git a/testing/tests/server/test_blobs_server.py b/testing/tests/server/test_blobs_server.py index f57a1d2d..36709ce6 100644 --- a/testing/tests/server/test_blobs_server.py +++ b/testing/tests/server/test_blobs_server.py @@ -195,6 +195,18 @@ class BlobServerTestCase(unittest.TestCase):      @defer.inlineCallbacks      @pytest.mark.usefixtures("method_tmpdir") +    def test_list_default_doesnt_list_other_namespaces(self): +        manager = BlobManager('', self.uri, self.secret, +                              self.secret, 'user') +        namespace = 'incoming' +        yield manager._encrypt_and_upload('blob_id1', BytesIO("1"), +                                          namespace=namespace) +        yield manager._encrypt_and_upload('blob_id2', BytesIO("2")) +        blobs_list = yield manager.remote_list() +        self.assertEquals(['blob_id2'], blobs_list) + +    @defer.inlineCallbacks +    @pytest.mark.usefixtures("method_tmpdir")      def test_download_from_namespace(self):          manager = BlobManager('', self.uri, self.secret,                                self.secret, 'user') | 
