Implement delete and contains for plasma client and store. (#28)

* Implement delete and contains for plasma client and store.

* Fix style, free object, add tests.
This commit is contained in:
Robert Nishihara
2016-09-23 15:07:50 -07:00
committed by Philipp Moritz
parent 0198a0d299
commit d41566a499
7 changed files with 173 additions and 10 deletions
+55
View File
@@ -90,6 +90,61 @@ class TestPlasmaClient(unittest.TestCase):
for i in range(len(metadata)):
self.assertEqual(metadata[i], metadata_buffer[i])
def test_contains(self):
fake_object_ids = [random_object_id() for _ in range(100)]
real_object_ids = [random_object_id() for _ in range(100)]
for object_id in real_object_ids:
self.assertFalse(self.plasma_client.contains(object_id))
memory_buffer = self.plasma_client.create(object_id, 100)
self.plasma_client.seal(object_id)
self.assertTrue(self.plasma_client.contains(object_id))
for object_id in fake_object_ids:
self.assertFalse(self.plasma_client.contains(object_id))
for object_id in real_object_ids:
self.assertTrue(self.plasma_client.contains(object_id))
def test_individual_delete(self):
length = 100
# Create an object id string.
object_id = random_object_id()
# Create a random metadata string.
metadata = generate_metadata(100)
# Create a new buffer and write to it.
memory_buffer = self.plasma_client.create(object_id, length, metadata)
for i in range(length):
memory_buffer[i] = chr(i % 256)
# Seal the object.
self.plasma_client.seal(object_id)
# Check that the object is present.
self.assertTrue(self.plasma_client.contains(object_id))
# Delete the object.
self.plasma_client.delete(object_id)
# Make sure the object is no longer present.
self.assertFalse(self.plasma_client.contains(object_id))
def test_delete(self):
# Create some objects.
object_ids = [random_object_id() for _ in range(100)]
for object_id in object_ids:
length = 100
# Create a random metadata string.
metadata = generate_metadata(100)
# Create a new buffer and write to it.
memory_buffer = self.plasma_client.create(object_id, length, metadata)
for i in range(length):
memory_buffer[i] = chr(i % 256)
# Seal the object.
self.plasma_client.seal(object_id)
# Check that the object is present.
self.assertTrue(self.plasma_client.contains(object_id))
# Delete the objects and make sure they are no longer present.
for object_id in object_ids:
# Delete the object.
self.plasma_client.delete(object_id)
# Make sure the object is no longer present.
self.assertFalse(self.plasma_client.contains(object_id))
def test_illegal_functionality(self):
# Create an object id string.
object_id = random_object_id()