ldb: Re-apply pyldb fixes from Tridge and Amity, using unittest rather
authorJelmer Vernooij <jelmer@samba.org>
Thu, 10 Nov 2011 19:20:00 +0000 (20:20 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 10 Nov 2011 22:37:04 +0000 (23:37 +0100)
than samba.tests.

lib/ldb/tests/python/api.py
source4/selftest/tests.py

index 6a8df25b7bbc1b404418c36ad20a5ab63b96c93a..97dd020ea5cb8b14d728bd75df211fac1be15880 100755 (executable)
@@ -3,7 +3,7 @@
 # Copyright (C) 2007 Jelmer Vernooij <jelmer@samba.org>
 
 import os
-import unittest
+from unittest import TestCase
 
 import ldb
 
@@ -16,7 +16,8 @@ def filename():
         dir_prefix = None
     return tempfile.mktemp(dir=dir_prefix)
 
-class NoContextTests(unittest.TestCase):
+
+class NoContextTests(TestCase):
 
     def test_valid_attr_name(self):
         self.assertTrue(ldb.valid_attr_name("foo"))
@@ -31,11 +32,11 @@ class NoContextTests(unittest.TestCase):
         self.assertEquals(1195499412, ldb.string_to_time("20071119191012.0Z"))
 
     def test_binary_encode(self):
-        encoded = self.binary_encode('test\\x')
-        decoded = self.binary_decode(encoded)
+        encoded = ldb.binary_encode('test\\x')
+        decoded = ldb.binary_decode(encoded)
         self.assertEquals(decoded, 'test\\x')
 
-class SimpleLdb(unittest.TestCase):
+class SimpleLdb(TestCase):
 
     def test_connect(self):
         ldb.Ldb(filename())
@@ -55,10 +56,6 @@ class SimpleLdb(unittest.TestCase):
         x = ldb.Ldb()
         x.set_create_perms(0600)
 
-    def test_set_modules_dir(self):
-        x = ldb.Ldb()
-        x.set_modules_dir("/tmp")
-
     def test_modules_none(self):
         x = ldb.Ldb()
         self.assertEquals([], x.modules())
@@ -69,11 +66,11 @@ class SimpleLdb(unittest.TestCase):
 
     def test_search(self):
         l = ldb.Ldb(filename())
-        self.assertEquals(len(l.search()), 1)
+        self.assertEquals(len(l.search()), 0)
 
     def test_search_controls(self):
         l = ldb.Ldb(filename())
-        self.assertEquals(len(l.search(controls=["paged_results:0:5"])), 1)
+        self.assertEquals(len(l.search(controls=["paged_results:0:5"])), 0)
 
     def test_search_attrs(self):
         l = ldb.Ldb(filename())
@@ -146,10 +143,10 @@ class SimpleLdb(unittest.TestCase):
         m = ldb.Message()
         m.dn = ldb.Dn(l, "dc=foo4")
         m["bla"] = "bla"
-        self.assertEquals(len(l.search()), 1)
+        self.assertEquals(len(l.search()), 0)
         l.add(m)
         try:
-            self.assertEquals(len(l.search()), 2)
+            self.assertEquals(len(l.search()), 1)
         finally:
             l.delete(ldb.Dn(l, "dc=foo4"))
 
@@ -158,27 +155,27 @@ class SimpleLdb(unittest.TestCase):
         m = ldb.Message()
         m.dn = ldb.Dn(l, "dc=foo4")
         m["bla"] = "bla"
-        self.assertEquals(len(l.search()), 1)
+        self.assertEquals(len(l.search()), 0)
         self.assertRaises(ldb.LdbError, lambda: l.add(m,["search_options:1:2"]))
 
     def test_add_dict(self):
         l = ldb.Ldb(filename())
         m = {"dn": ldb.Dn(l, "dc=foo5"),
              "bla": "bla"}
-        self.assertEquals(len(l.search()), 1)
+        self.assertEquals(len(l.search()), 0)
         l.add(m)
         try:
-            self.assertEquals(len(l.search()), 2)
+            self.assertEquals(len(l.search()), 1)
         finally:
             l.delete(ldb.Dn(l, "dc=foo5"))
 
     def test_add_dict_string_dn(self):
         l = ldb.Ldb(filename())
         m = {"dn": "dc=foo6", "bla": "bla"}
-        self.assertEquals(len(l.search()), 1)
+        self.assertEquals(len(l.search()), 0)
         l.add(m)
         try:
-            self.assertEquals(len(l.search()), 2)
+            self.assertEquals(len(l.search()), 1)
         finally:
             l.delete(ldb.Dn(l, "dc=foo6"))
 
@@ -187,11 +184,11 @@ class SimpleLdb(unittest.TestCase):
         m = ldb.Message()
         m.dn = ldb.Dn(l, "dc=foo7")
         m["bla"] = "bla"
-        self.assertEquals(len(l.search()), 1)
+        self.assertEquals(len(l.search()), 0)
         l.add(m)
         try:
             l.rename(ldb.Dn(l, "dc=foo7"), ldb.Dn(l, "dc=bar"))
-            self.assertEquals(len(l.search()), 2)
+            self.assertEquals(len(l.search()), 1)
         finally:
             l.delete(ldb.Dn(l, "dc=bar"))
 
@@ -200,12 +197,12 @@ class SimpleLdb(unittest.TestCase):
         m = ldb.Message()
         m.dn = ldb.Dn(l, "dc=foo8")
         m["bla"] = "bla"
-        self.assertEquals(len(l.search()), 1)
+        self.assertEquals(len(l.search()), 0)
         l.add(m)
-        self.assertEquals(len(l.search()), 2)
+        self.assertEquals(len(l.search()), 1)
         try:
             l.rename("dc=foo8", "dc=bar")
-            self.assertEquals(len(l.search()), 2)
+            self.assertEquals(len(l.search()), 1)
         finally:
             l.delete(ldb.Dn(l, "dc=bar"))
 
@@ -336,9 +333,10 @@ class SimpleLdb(unittest.TestCase):
         self.assertRaises(ldb.LdbError,lambda: l.search("", ldb.SCOPE_SUBTREE, "&(dc=*)(dn=*)", ["dc"]))
 
 
-class DnTests(unittest.TestCase):
+class DnTests(TestCase):
 
     def setUp(self):
+        super(DnTests, self).setUp()
         self.ldb = ldb.Ldb(filename())
 
     def test_set_dn_invalid(self):
@@ -454,9 +452,10 @@ class DnTests(unittest.TestCase):
         self.assertFalse(dn3.is_child_of(dn2))
         self.assertFalse(dn1.is_child_of(dn4))
 
-class LdbMsgTests(unittest.TestCase):
+class LdbMsgTests(TestCase):
 
     def setUp(self):
+        super(LdbMsgTests, self).setUp()
         self.msg = ldb.Message()
 
     def test_init_dn(self):
@@ -531,10 +530,12 @@ class LdbMsgTests(unittest.TestCase):
     def test_get_other(self):
         self.msg["foo"] = ["bar"]
         self.assertEquals("bar", self.msg.get("foo")[0])
+        self.assertEquals("bar", self.msg.get("foo", idx=0))
+        self.assertEquals(None, self.msg.get("foo", idx=1))
+        self.assertEquals("", self.msg.get("foo", default='', idx=1))
 
     def test_get_default(self):
-        self.assertEquals(None, self.msg.get("tatayoyo"))
-
+        self.assertEquals(None, self.msg.get("tatayoyo", idx=0))
         self.assertEquals("anniecordie", self.msg.get("tatayoyo", "anniecordie"))
 
     def test_get_unknown(self):
@@ -588,7 +589,7 @@ class LdbMsgTests(unittest.TestCase):
 
 
 
-class MessageElementTests(unittest.TestCase):
+class MessageElementTests(TestCase):
 
     def test_cmp_element(self):
         x = ldb.MessageElement(["foo"])
@@ -633,7 +634,7 @@ class MessageElementTests(unittest.TestCase):
         self.assertEquals("MessageElement(['456'])", repr(el))
 
 
-class ModuleTests(unittest.TestCase):
+class ModuleTests(TestCase):
 
     def test_register_module(self):
         class ExampleModule:
@@ -652,8 +653,8 @@ class ModuleTests(unittest.TestCase):
             def search(self, *args, **kwargs):
                 return self.next.search(*args, **kwargs)
 
-        def request(self, *args, **kwargs):
-            pass
+            def request(self, *args, **kwargs):
+                pass
 
         name = filename()
         ldb.register_module(ExampleModule)
@@ -665,9 +666,10 @@ class ModuleTests(unittest.TestCase):
         l = ldb.Ldb(name)
         self.assertEquals(["init"], ops)
 
-class LdbResultTests(unittest.TestCase):
+class LdbResultTests(TestCase):
 
     def setUp(self):
+        super(LdbResultTests, self).setUp()
         name = filename()
         self.name = name
         if os.path.exists(name):
@@ -688,6 +690,7 @@ class LdbResultTests(unittest.TestCase):
         self.l.add({"dn": "OU=OU10,DC=SAMBA,DC=ORG", "name": "OU #10"})
 
     def tearDown(self):
+        super(LdbResultTests, self).tearDown()
         if os.path.exists(self.name):
             os.unlink(self.name)
 
@@ -753,7 +756,8 @@ class LdbResultTests(unittest.TestCase):
                 found = True
         self.assertTrue(found)
 
-class VersionTests(unittest.TestCase):
+
+class VersionTests(TestCase):
 
     def test_version(self):
         self.assertTrue(isinstance(ldb.__version__, str))
index c36b6e54fdab8d7c5f4e2d1a0e21592dc5281977..f2e7df4ed37afd139c848e514487c5b54f96bc8c 100755 (executable)
@@ -395,7 +395,7 @@ def plansambapythontestsuite(name, env, path, module, environ={}, extra_args=[])
     args += extra_args
     plantestsuite(name, env, args)
 
-plantestsuite_idlist("ldb.python", "none", [subunitrun, '-D', 'lib/ldb/tests/python', "api"])
+planpythontestsuite("api", "none", name="ldb.python", directory='lib/ldb/tests/python')
 planpythontestsuite("none", "samba.tests.credentials")
 plantestsuite_idlist("samba.tests.gensec", "dc:local", [subunitrun, "$LISTOPT", '-U"$USERNAME%$PASSWORD"', "samba.tests.gensec"])
 planpythontestsuite("none", "samba.tests.registry")