s4-ldb.python: add test for ldb.Message.from_dict() method
authorKamen Mazdrashki <kamenim@samba.org>
Thu, 18 Nov 2010 15:46:33 +0000 (17:46 +0200)
committerKamen Mazdrashki <kamenim@samba.org>
Thu, 18 Nov 2010 21:28:08 +0000 (22:28 +0100)
source4/lib/ldb/tests/python/api.py

index 3e43d4ac0111b18c24e27f69eb364a2baac309f0..b5585dcd3df654347fd4c2798a6d6221da6a8d49 100755 (executable)
@@ -532,6 +532,23 @@ class LdbMsgTests(unittest.TestCase):
         self.assertNotEquals(msg1, msg2)
         msg2['foo'] = 'blie'
 
+    def test_from_dict(self):
+        rec = {"dn": "dc=fromdict",
+               "a1": ["a1-val1", "a1-val1"]}
+        l = ldb.Ldb()
+        # check different types of input Flags
+        for flags in [ldb.FLAG_MOD_ADD, ldb.FLAG_MOD_REPLACE, ldb.FLAG_MOD_DELETE]:
+            m = ldb.Message.from_dict(l, rec, flags)
+            self.assertEquals(rec["a1"], list(m["a1"]))
+            self.assertEquals(flags, m["a1"].flags())
+        # check input params
+        self.assertRaises(TypeError, ldb.Message.from_dict, dict(), rec, ldb.FLAG_MOD_REPLACE)
+        self.assertRaises(TypeError, ldb.Message.from_dict, l, list(), ldb.FLAG_MOD_REPLACE)
+        self.assertRaises(ValueError, ldb.Message.from_dict, l, rec, 0)
+        # Message.from_dict expects dictionary with 'dn'
+        err_rec = {"a1": ["a1-val1", "a1-val1"]}
+        self.assertRaises(TypeError, ldb.Message.from_dict, l, err_rec, ldb.FLAG_MOD_REPLACE)
+
 
 
 class MessageElementTests(unittest.TestCase):