def test_reverse_transform(self): def transform(key): return key.reverse ds = DictDatastore() kt = datastore.KeyTransformDatastore(ds, keytransform=transform) k1 = Key('/a/b/c') k2 = Key('/c/b/a') self.assertFalse(ds.contains(k1)) self.assertFalse(ds.contains(k2)) self.assertFalse(kt.contains(k1)) self.assertFalse(kt.contains(k2)) ds.put(k1, 'abc') self.assertEqual(ds.get(k1), 'abc') self.assertFalse(ds.contains(k2)) self.assertFalse(kt.contains(k1)) self.assertEqual(kt.get(k2), 'abc') kt.put(k1, 'abc') self.assertEqual(ds.get(k1), 'abc') self.assertEqual(ds.get(k2), 'abc') self.assertEqual(kt.get(k1), 'abc') self.assertEqual(kt.get(k2), 'abc') ds.delete(k1) self.assertFalse(ds.contains(k1)) self.assertEqual(ds.get(k2), 'abc') self.assertEqual(kt.get(k1), 'abc') self.assertFalse(kt.contains(k2)) kt.delete(k1) self.assertFalse(ds.contains(k1)) self.assertFalse(ds.contains(k2)) self.assertFalse(kt.contains(k1)) self.assertFalse(kt.contains(k2))
def subtest_nested_path_ds(self, **kwargs): k1 = kwargs.pop('k1') k2 = kwargs.pop('k2') k3 = kwargs.pop('k3') k4 = kwargs.pop('k4') ds = DictDatastore() np = datastore.NestedPathDatastore(ds, **kwargs) self.assertFalse(ds.contains(k1)) self.assertFalse(ds.contains(k2)) self.assertFalse(ds.contains(k3)) self.assertFalse(ds.contains(k4)) self.assertFalse(np.contains(k1)) self.assertFalse(np.contains(k2)) self.assertFalse(np.contains(k3)) self.assertFalse(np.contains(k4)) np.put(k1, k1) np.put(k2, k2) self.assertFalse(ds.contains(k1)) self.assertFalse(ds.contains(k2)) self.assertTrue(ds.contains(k3)) self.assertTrue(ds.contains(k4)) self.assertTrue(np.contains(k1)) self.assertTrue(np.contains(k2)) self.assertFalse(np.contains(k3)) self.assertFalse(np.contains(k4)) self.assertEqual(np.get(k1), k1) self.assertEqual(np.get(k2), k2) self.assertEqual(ds.get(k3), k1) self.assertEqual(ds.get(k4), k2) np.delete(k1) np.delete(k2) self.assertFalse(ds.contains(k1)) self.assertFalse(ds.contains(k2)) self.assertFalse(ds.contains(k3)) self.assertFalse(ds.contains(k4)) self.assertFalse(np.contains(k1)) self.assertFalse(np.contains(k2)) self.assertFalse(np.contains(k3)) self.assertFalse(np.contains(k4)) ds.put(k3, k1) ds.put(k4, k2) self.assertFalse(ds.contains(k1)) self.assertFalse(ds.contains(k2)) self.assertTrue(ds.contains(k3)) self.assertTrue(ds.contains(k4)) self.assertTrue(np.contains(k1)) self.assertTrue(np.contains(k2)) self.assertFalse(np.contains(k3)) self.assertFalse(np.contains(k4)) self.assertEqual(np.get(k1), k1) self.assertEqual(np.get(k2), k2) self.assertEqual(ds.get(k3), k1) self.assertEqual(ds.get(k4), k2) ds.delete(k3) ds.delete(k4) self.assertFalse(ds.contains(k1)) self.assertFalse(ds.contains(k2)) self.assertFalse(ds.contains(k3)) self.assertFalse(ds.contains(k4)) self.assertFalse(np.contains(k1)) self.assertFalse(np.contains(k2)) self.assertFalse(np.contains(k3)) self.assertFalse(np.contains(k4))