X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/88ec9a2d443e208f0891ad72ce227a903845d3ab..ae6ce3ffebbe033d7fee4a3fc5f3518397305d02:/t/t-key.py diff --git a/t/t-key.py b/t/t-key.py index 20cadb1..bee107b 100644 --- a/t/t-key.py +++ b/t/t-key.py @@ -188,7 +188,7 @@ class TestKeyFile (U.TestCase): k = kf.newkey(0x11111111, "first", exp) me.assertEqual(kf.modifiedp, True) - me.assertEqual(kf[0x11111111].id, 0x11111111) + me.assertEqual(k, kf[0x11111111]) me.assertEqual(k.exptime, exp) me.assertEqual(k.deltime, exp) me.assertRaises(ValueError, setattr, k, "deltime", C.KEXP_FOREVER) @@ -212,24 +212,6 @@ class TestKeyFile (U.TestCase): "22222222:test integer,public:32519164 forever forever -") ###-------------------------------------------------------------------------- - -def keydata_equalp(kd0, kd1): - if type(kd0) is not type(kd1): return False - elif type(kd0) is C.KeyDataBinary: return kd0.bin == kd1.bin - elif type(kd0) is C.KeyDataMP: return kd0.mp == kd1.mp - elif type(kd0) is C.KeyDataEncrypted: return kd0.ct == kd1.ct - elif type(kd0) is C.KeyDataECPt: return kd0.ecpt == kd1.ecpt - elif type(kd0) is C.KeyDataString: return kd0.str == kd1.str - elif type(kd0) is C.KeyDataStructured: - if len(kd0) != len(kd1): return False - for t, v0 in T.iteritems(kd0): - try: v1 = kd1[t] - except KeyError: return False - if not keydata_equalp(v0, v1): return False - return True - else: - raise SystemError("unexpected keydata type") - class TestKeyData (U.TestCase): def test_flags(me): @@ -266,10 +248,8 @@ class TestKeyData (U.TestCase): me.assertEqual(set(T.iterkeys(kd2)), set(["b"])) def check_encode(me, kd): - me.assertTrue(keydata_equalp(C.KeyData.decode(kd.encode()), kd)) - kd1, tail = C.KeyData.read(kd.write()) - me.assertEqual(tail, "") - me.assertTrue(keydata_equalp(kd, kd1)) + me.assertEqual(C.KeyData.decode(kd.encode()), kd) + me.assertEqual(C.KeyData.read(kd.write()), (kd, "")) def test_bin(me): rng = T.detrand("kd-bin") @@ -335,6 +315,13 @@ class TestKeyFileMapping (T.ImmutableMappingTextMixin): me.check_immutable_mapping(kf, model) +class TestKeyStructMapping (T.MutableMappingTestMixin): + def _mkvalue(me, i): return C.KeyDataMP(i) + def _getvalue(me, v): return v.mp + + def test_keystructmap(me): + me.check_mapping(C.KeyDataStructured) + class TestKeyAttrMapping (T.MutableMappingTestMixin): def test_attrmap(me):