def test_heterogeneous_delete(self): objectstore = ObjectStore() self._test_lookup_by_all(objectstore) objectstore.delete(self.obj_type2_names[255]) for i2, val in zip(self.index2s, self.obj_type1_values): self.assertEqual( objectstore.lookup('type1:index2', i2), val, "After type2 deletion, " "can still lookup by type1:index2") for i1, val in zip(self.index1s, self.obj_type1_values): self.assertEqual( objectstore.lookup('type1:index1', i1), val, "After type2 deletion, " "can still lookup by type1:index1") def lookup_by_index1_from_deleted(*args): store = args[0] store.lookup('type2:index1', self.index1s[255]) self.assertRaises(KeyError, lookup_by_index1_from_deleted, objectstore, "Lookup by type2:index1 on deleted raises an error") del self.obj_type2_values[255] del self.index2s[255] del self.index1s[255] for i, val in zip(self.index1s, self.obj_type2_values): self.assertEqual(objectstore.lookup('type2:index1', i), val, "Can look up any other type2:index1") for c, val in zip(self.index2s, self.obj_type2_values): self.assertEqual(objectstore.lookup('type2:index2', c), val, "Can look up any other type2:index2")
def test_heterogeneous_delete(self): objectstore = ObjectStore() self._test_lookup_by_all(objectstore) objectstore.delete(self.obj_type2_names[255]) for i2, val in zip(self.index2s, self.obj_type1_values): self.assertEqual(objectstore.lookup('type1:index2', i2), val, "After type2 deletion, " "can still lookup by type1:index2") for i1, val in zip(self.index1s, self.obj_type1_values): self.assertEqual(objectstore.lookup('type1:index1', i1), val, "After type2 deletion, " "can still lookup by type1:index1") def lookup_by_index1_from_deleted(*args): store = args[0] store.lookup('type2:index1', self.index1s[255]) self.assertRaises(KeyError, lookup_by_index1_from_deleted, objectstore, "Lookup by type2:index1 on deleted raises an error") del self.obj_type2_values[255] del self.index2s[255] del self.index1s[255] for i, val in zip(self.index1s, self.obj_type2_values): self.assertEqual(objectstore.lookup('type2:index1', i), val, "Can look up any other type2:index1") for c, val in zip(self.index2s, self.obj_type2_values): self.assertEqual(objectstore.lookup('type2:index2', c), val, "Can look up any other type2:index2")
def test_delete(self): obj_store = ObjectStore(indexes=['type1:index1', 'type1:index2']) self._test_set_and_lookup(obj_store) def lookup_key_that_is_missing(*args, **kwargs): store = args[0] store.lookup('type1:index2', self.index2s[544]) for n in self.names: obj_store.delete(n) self.assertRaises(KeyError, lookup_key_that_is_missing, obj_store, "Lookup of attribute from key that has " "been deleted throws an error")