def test_key_not_found(self): # create a kv database ctx = t.Ctx() a1 = t.Attr(ctx, "value", dtype=bytes) kv = t.KV(ctx, self.path("foo"), attrs=(a1, )) self.assertRaises(KeyError, kv.__getitem__, "not here")
def test_kv_contains(self): # create a kv database ctx = t.Ctx() a1 = t.Attr(ctx, "value", dtype=bytes) kv = t.KV(ctx, self.path("foo"), attrs=(a1, )) self.assertFalse("foo" in kv) kv['foo'] = 'bar' self.assertTrue("foo" in kv)
def test_kv_write_read(self): # create a kv database ctx = t.Ctx() a1 = t.Attr(ctx, "value", dtype=bytes) kv = t.KV(ctx, self.path("foo"), attrs=(a1, )) a1.dump() kv['foo'] = 'bar' kv.dump() self.assertEqual(kv["foo"], 'bar')
def test_kv_dict(self): # create a kv database ctx = t.Ctx() a1 = t.Attr(ctx, "value", dtype=bytes) kv = t.KV(ctx, self.path("foo"), attrs=(a1, )) kv['foo'] = 'bar' kv['baz'] = 'foo' self.assertEqual(kv.dict(), {'foo': 'bar', 'baz': 'foo'}) self.assertEqual(dict(kv), {'foo': 'bar', 'baz': 'foo'})
def test_kv_write_load_read(self): # create a kv database ctx = t.Ctx() a1 = t.Attr(ctx, "value", dtype=bytes) kv = t.KV(ctx, self.path("foo"), attrs=(a1, )) kv['foo'] = 'bar' del kv # try to load it kv = t.KV.load(ctx, self.path("foo")) self.assertEqual(kv["foo"], 'bar')
def test_kv_update(self): # create a kv database ctx = t.Ctx() a1 = t.Attr(ctx, "val", dtype=bytes) kv = t.KV(ctx, self.path("foo"), attrs=(a1, )) kv['foo'] = 'bar' del kv kv = t.KV.load(ctx, self.path("foo")) kv['foo'] = 'baz' del kv kv = t.KV.load(ctx, self.path("foo")) self.assertEqual(kv['foo'], 'baz')
def test_multiattribute(self): ctx = t.Ctx() a1 = t.Attr(ctx, "ints", dtype=int) a2 = t.Attr(ctx, "floats", dtype=float) kv = t.KV(ctx, self.path("foo"), attrs=(a1, a2))