pgen.c: Add a binding for Catacomb's `primeiter'.
[catacomb-python] / t / t-key.py
index bee107b..27808a4 100644 (file)
@@ -163,11 +163,14 @@ class TestKeyFile (U.TestCase):
 
     ## Check unsuccessful searches.
     me.assertRaises(KeyError, lambda: kf["notexist"])
-    me.assertEqual(kf.bytag("notexist"), None)
-    me.assertEqual(kf.bytag(12345), None)
-    me.assertEqual(kf.bytype("notexist"), None)
+    me.assertRaises(C.KeyError, kf.bytag, "notexist")
+    me.assertRaises(C.KeyError, kf.bytag, 12345)
+    me.assertEqual(kf.bytag("notexist", fail = False), None)
+    me.assertRaises(C.KeyError, kf.bytype, "notexist")
     me.assertRaises(TypeError, kf.bytype, 12345)
+    me.assertEqual(kf.bytype("notexist", fail = False), None)
     me.assertRaises(C.KeyError, kf.byid, 0x12345678)
+    me.assertEqual(kf.byid(0x12345678, fail = False), None)
 
     me.assertRaises(C.KeyError, kf.mergeline, "nowhere", 2, "")
 
@@ -288,13 +291,16 @@ class TestKeyData (U.TestCase):
   def test_struct(me):
     rng = T.detrand("kd-struct")
     kd = C.KeyDataStructured({ "a": C.KeyDataString("a"),
-                               "b": C.KeyDataString("b"),
-                               "c": C.KeyDataString("c"),
-                               "d": C.KeyDataString("d") })
+                               "b": C.KeyDataString("b") },
+                             c = C.KeyDataString("c"),
+                             d = C.KeyDataString("d"))
     for i in ["a", "b", "c", "d"]: me.assertEqual(kd[i].str, i)
     me.assertEqual(len(kd), 4)
     me.check_encode(kd)
     me.assertRaises(TypeError, C.KeyDataStructured, { "a": "a" })
+    me.assertRaises(ValueError, C.KeyDataStructured,
+                    { "a": C.KeyDataString("a") },
+                    a = C.KeyDataString("b"))
 
 ###--------------------------------------------------------------------------
 ### Mappings.