From 5cd3883f9ba98f3e78a818988860da0071c9480b Mon Sep 17 00:00:00 2001 From: drebs Date: Sun, 10 Dec 2017 21:22:13 -0200 Subject: [bug] use namespace when uploading blobs --- tests/blobs/test_blob_manager.py | 23 +++++++++++++++++++++++ tests/blobs/test_fs_backend.py | 13 +++++++++++++ 2 files changed, 36 insertions(+) (limited to 'tests') diff --git a/tests/blobs/test_blob_manager.py b/tests/blobs/test_blob_manager.py index 76ebcd03..761ede44 100644 --- a/tests/blobs/test_blob_manager.py +++ b/tests/blobs/test_blob_manager.py @@ -81,6 +81,29 @@ class BlobManagerTestCase(unittest.TestCase): self.assertEquals(result.getvalue(), msg) self.assertTrue(self.manager._encrypt_and_upload.called) + @defer.inlineCallbacks + @pytest.mark.usefixtures("method_tmpdir") + def test_put_stores_on_local_db_with_namespace(self): + self.manager._encrypt_and_upload = Mock(return_value=None) + self.manager._download_and_decrypt = Mock(return_value=None) + msg, blob_id = "Hey Joe", uuid4().hex + doc = BlobDoc(BytesIO(msg), blob_id=blob_id) + + yield self.manager.put(doc, size=len(msg), namespace='custom') + self.assertTrue(self.manager._encrypt_and_upload.called) + + arg1, arg2 = self.manager._encrypt_and_upload.call_args[0] + kwargs = self.manager._encrypt_and_upload.call_args[1] + self.assertEquals(arg1, blob_id) + self.assertTrue(isinstance(arg2, BytesIO)) + self.assertEquals(kwargs, {'namespace': 'custom'}) + + result = yield self.manager.local.get(blob_id) + self.assertEquals(result, None) + + result = yield self.manager.local.get(blob_id, namespace='custom') + self.assertEquals(result.getvalue(), msg) + @defer.inlineCallbacks @pytest.mark.usefixtures("method_tmpdir") def test_put_local_only_doesnt_send_to_server(self): diff --git a/tests/blobs/test_fs_backend.py b/tests/blobs/test_fs_backend.py index 94b628c4..da328dab 100644 --- a/tests/blobs/test_fs_backend.py +++ b/tests/blobs/test_fs_backend.py @@ -214,3 +214,16 @@ class FilesystemBackendTestCase(unittest.TestCase): unlink_mock.assert_any_call(backend._get_path('user', 'blob_id', 'trash') + '.flags') + + @pytest.mark.usefixtures("method_tmpdir") + @defer.inlineCallbacks + def test_write_blob_using_namespace(self): + backend = _blobs.FilesystemBlobsBackend(blobs_path=self.tempdir) + request = DummyRequest(['']) + request.content = BytesIO('content') + yield backend.write_blob('user', 'blob_id', request, + namespace='custom') + default = yield backend.list_blobs('user', request) + custom = yield backend.list_blobs('user', request, namespace='custom') + self.assertEquals([], json.loads(default)) + self.assertEquals(['blob_id'], json.loads(custom)) -- cgit v1.2.3