def test_upload_then_delete_updates_list(self): manager = BlobManager('', self.uri, self.secret, self.secret, 'user') yield manager._encrypt_and_upload('blob_id1', BytesIO("1")) yield manager._encrypt_and_upload('blob_id2', BytesIO("2")) yield manager._delete_from_remote('blob_id1') blobs_list = yield manager.remote_list() self.assertEquals(set(['blob_id2']), set(blobs_list))
def test_upload_then_delete_updates_list(self): manager = BlobManager('', self.uri, self.secret, self.secret, uuid4().hex) yield manager._encrypt_and_upload('blob_id1', BytesIO("1")) yield manager._encrypt_and_upload('blob_id2', BytesIO("2")) yield manager._delete_from_remote('blob_id1') blobs_list = yield manager.remote_list() deleted_blobs_list = yield manager.remote_list(deleted=True) self.assertEquals(set(['blob_id2']), set(blobs_list)) self.assertEquals(set(['blob_id1']), set(deleted_blobs_list))
def test_upload_then_delete_updates_list_using_namespace(self): manager = BlobManager('', self.uri, self.secret, self.secret, 'user') namespace = 'special_archives' yield manager._encrypt_and_upload('blob_id1', BytesIO("1"), namespace=namespace) yield manager._encrypt_and_upload('blob_id2', BytesIO("2"), namespace=namespace) yield manager._delete_from_remote('blob_id1', namespace=namespace) blobs_list = yield manager.remote_list(namespace=namespace) self.assertEquals(set(['blob_id2']), set(blobs_list))
def test_upload_then_delete_updates_list_using_namespace(self): manager = BlobManager('', self.uri, self.secret, self.secret, uuid4().hex) namespace = 'special_archives' yield manager._encrypt_and_upload('blob_id1', BytesIO("1"), namespace=namespace) yield manager._encrypt_and_upload('blob_id2', BytesIO("2"), namespace=namespace) yield manager._delete_from_remote('blob_id1', namespace=namespace) blobs_list = yield manager.remote_list(namespace=namespace) deleted_blobs_list = yield manager.remote_list(namespace, deleted=True) self.assertEquals(set(['blob_id2']), set(blobs_list)) self.assertEquals(set(['blob_id1']), set(deleted_blobs_list))
def test_refresh_deletions_from_server(self): manager = BlobManager(self.tempdir, self.uri, self.secret, self.secret, uuid4().hex) self.addCleanup(manager.close) blob_id, content = 'delete_me', 'content' blob_id2 = 'dont_delete_me' doc1 = BlobDoc(BytesIO(content), blob_id) doc2 = BlobDoc(BytesIO(content), blob_id2) yield manager.put(doc1, len(content)) yield manager.put(doc2, len(content)) yield manager._delete_from_remote(blob_id) # remote only deletion self.assertTrue((yield manager.local.exists(blob_id))) yield manager.sync() self.assertFalse((yield manager.local.exists(blob_id))) self.assertTrue((yield manager.local.exists(blob_id2)))