[SCM] Samba Shared Repository - branch master updated

Jelmer Vernooij jelmer at samba.org
Sat Jun 19 14:55:21 MDT 2010


The branch, master has been updated
       via  c92db7b... python: Use samba.tests.TestCase, make sure base class tearDown and setUp methods are called, fix formatting.
       via  105ebb3... acl: Clean up formatting, use samba.tests.TestCase.
       via  5060367... pyrpc: Fix reference counting when using secondary connections.
       via  50429fb... samba.tests.samba3: Clean up imports, use new TestCase class.
       via  f57b26b... ntacls: Raise TestSkipped rather than writing to stdout.
       via  96f120e... python/passwords: Clean up imports.
       via  026a4d8... samba.tests: Provide TestCase and TestSkipped classes (from testtools) for convenience.
       via  5e67566... pytdb: Cleanup formatting.
       via  2b7b695... dsdb_schema_info: Clean up imports, avoid using rpc test case for non-RPC tests.
       via  c2cb0a7... python: Remove unnecessary Ldb.set_invocation_id - use SamDB.set_invocation_id instead.
       via  827ce7b... pyglue: Trim dependencies.
       via  27d8268... pyglue: Remove unused code.
       via  74309eb... pydsdb: Move write_prefixes_from_schema_to_ldb to pydsdb from pyglue.
       via  a4f60ff... pydsdb: Move dsdb_set_schema_from_ldb to pydsdb.
       via  05b108a... pydsdb: Move set_schema_from_ldif function to pydsdb from pyglue.
      from  d3a9957... libcli: Fixed a segfault in security_acl_dup when the acl is NULL.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit c92db7b6dc31756fc461ea9f74e1cd675e3e160d
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 18:58:18 2010 +0200

    python: Use samba.tests.TestCase, make sure base class tearDown and
    setUp methods are called, fix formatting.

commit 105ebb34405eb458c51ebbfb57b3ce31a41c34e2
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 18:57:35 2010 +0200

    acl: Clean up formatting, use samba.tests.TestCase.

commit 5060367bf9356a9f18fbc41563b8052fb68153d2
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 18:57:13 2010 +0200

    pyrpc: Fix reference counting when using secondary connections.

commit 50429fb75074863598807267a6d02ed44056efe8
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:49:46 2010 +0200

    samba.tests.samba3: Clean up imports, use new TestCase class.

commit f57b26b6f44494efc0689724a33780e660e3d795
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:49:15 2010 +0200

    ntacls: Raise TestSkipped rather than writing to stdout.

commit 96f120e2349b855ea34888ad923861e787812827
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:48:37 2010 +0200

    python/passwords: Clean up imports.

commit 026a4d85a1a909d2efe447bea36b941e01da7e42
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:48:05 2010 +0200

    samba.tests: Provide TestCase and TestSkipped classes (from testtools) for convenience.

commit 5e67566f5e660a91c004aa606d1987fd7665f5dd
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:46:57 2010 +0200

    pytdb: Cleanup formatting.

commit 2b7b69544cfc498b731ef0d65759f65376d460fd
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:32:01 2010 +0200

    dsdb_schema_info: Clean up imports, avoid using rpc test case for
    non-RPC tests.

commit c2cb0a710b050845420e6128cf80e6c3653df650
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:27:50 2010 +0200

    python: Remove unnecessary Ldb.set_invocation_id - use SamDB.set_invocation_id instead.

commit 827ce7b0a37595b23ab35d016fd391a82d408a76
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:23:41 2010 +0200

    pyglue: Trim dependencies.

commit 27d82685dabf93c41ddbe273563073394d21afd3
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:19:48 2010 +0200

    pyglue: Remove unused code.

commit 74309eb29cba6a9a3c22bcb808b5c2e59a9f9880
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:15:26 2010 +0200

    pydsdb: Move write_prefixes_from_schema_to_ldb to pydsdb from pyglue.

commit a4f60ffe4bb4e0e32d7cd62dc872b1f23435edca
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 17:09:52 2010 +0200

    pydsdb: Move dsdb_set_schema_from_ldb to pydsdb.

commit 05b108a06b383f2172a379629b9a6bcff82c6868
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sat Jun 19 16:52:09 2010 +0200

    pydsdb: Move set_schema_from_ldif function to pydsdb from pyglue.

-----------------------------------------------------------------------

Summary of changes:
 lib/tdb/python/tests/simple.py                     |   11 +-
 source4/auth/credentials/tests/bindings.py         |    6 +-
 source4/auth/gensec/tests/bindings.py              |    8 +-
 source4/auth/tests/bindings.py                     |    5 +-
 source4/dsdb/pydsdb.c                              |   77 ++++++
 source4/lib/ldb/tests/python/acl.py                |  252 ++++++++++----------
 source4/lib/ldb/tests/python/api.py                |    5 +-
 source4/lib/ldb/tests/python/dsdb_schema_info.py   |   11 +-
 source4/lib/ldb/tests/python/ldap.py               |    4 +
 source4/lib/ldb/tests/python/ldap_schema.py        |    5 +
 source4/lib/ldb/tests/python/passwords.py          |   18 +-
 source4/lib/ldb/tests/python/sec_descriptor.py     |   24 +--
 source4/lib/ldb/tests/python/urgent_replication.py |    4 +-
 source4/lib/messaging/tests/bindings.py            |    3 +-
 source4/lib/registry/tests/bindings.py             |    9 +-
 source4/libcli/security/tests/bindings.py          |   28 ++-
 source4/librpc/rpc/pyrpc.c                         |   60 ++++--
 source4/librpc/rpc/pyrpc.h                         |    1 +
 source4/param/tests/bindings.py                    |    5 +-
 source4/param/wscript_build                        |    2 +-
 source4/scripting/python/pyglue.c                  |  124 +---------
 source4/scripting/python/samba/__init__.py         |   13 +-
 source4/scripting/python/samba/tests/__init__.py   |   30 ++-
 .../python/samba/tests/dcerpc/__init__.py          |    2 +-
 .../scripting/python/samba/tests/dcerpc/bare.py    |   19 +-
 .../scripting/python/samba/tests/dcerpc/misc.py    |    6 +-
 .../python/samba/tests/dcerpc/registry.py          |    1 +
 .../scripting/python/samba/tests/dcerpc/rpcecho.py |    6 +-
 source4/scripting/python/samba/tests/dcerpc/sam.py |    1 +
 .../scripting/python/samba/tests/dcerpc/unix.py    |    1 +
 source4/scripting/python/samba/tests/netcmd.py     |    5 +-
 source4/scripting/python/samba/tests/ntacls.py     |   31 ++--
 source4/scripting/python/samba/tests/provision.py  |    6 +-
 source4/scripting/python/samba/tests/samba3.py     |   56 ++++--
 source4/scripting/python/samba/tests/shares.py     |    2 +-
 source4/scripting/python/samba/tests/upgrade.py    |    1 +
 source4/scripting/python/samba/tests/xattr.py      |    2 +-
 source4/scripting/python/wscript_build             |    2 +-
 source4/torture/libnet/python/samr-test.py         |    4 +-
 39 files changed, 443 insertions(+), 407 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/tdb/python/tests/simple.py b/lib/tdb/python/tests/simple.py
index 1c5982b..6b1e840 100644
--- a/lib/tdb/python/tests/simple.py
+++ b/lib/tdb/python/tests/simple.py
@@ -12,12 +12,15 @@ import os, tempfile
 
 
 class OpenTdbTests(TestCase):
+
     def test_nonexistant_read(self):
-        self.assertRaises(IOError, tdb.Tdb, "/some/nonexistant/file", 0, tdb.DEFAULT, os.O_RDWR)
+        self.assertRaises(IOError, tdb.Tdb, "/some/nonexistant/file", 0,
+                tdb.DEFAULT, os.O_RDWR)
 
 class CloseTdbTests(TestCase):
     def test_double_close(self):
-        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
+        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT,
+                os.O_CREAT|os.O_RDWR)
         self.assertNotEqual(None, self.tdb)
 
         # ensure that double close does not crash python
@@ -26,9 +29,11 @@ class CloseTdbTests(TestCase):
 
 
 class SimpleTdbTests(TestCase):
+
     def setUp(self):
         super(SimpleTdbTests, self).setUp()
-        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT, os.O_CREAT|os.O_RDWR)
+        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT,
+                os.O_CREAT|os.O_RDWR)
         self.assertNotEqual(None, self.tdb)
 
     def tearDown(self):
diff --git a/source4/auth/credentials/tests/bindings.py b/source4/auth/credentials/tests/bindings.py
index 30120b3..4cb059d 100644
--- a/source4/auth/credentials/tests/bindings.py
+++ b/source4/auth/credentials/tests/bindings.py
@@ -23,11 +23,13 @@ Note that this just tests the bindings work. It does not intend to test
 the functionality, that's already done in other tests.
 """
 
-import unittest
 from samba import credentials
+import samba.tests
+
+class CredentialsTests(samba.tests.TestCase):
 
-class CredentialsTests(unittest.TestCase):
     def setUp(self):
+        super(CredentialsTests, self).setUp()
         self.creds = credentials.Credentials()
 
     def test_set_username(self):
diff --git a/source4/auth/gensec/tests/bindings.py b/source4/auth/gensec/tests/bindings.py
index b9d80e4..cffcc27 100644
--- a/source4/auth/gensec/tests/bindings.py
+++ b/source4/auth/gensec/tests/bindings.py
@@ -23,16 +23,16 @@ Note that this just tests the bindings work. It does not intend to test
 the functionality, that's already done in other tests.
 """
 
-import unittest
 from samba import gensec
-from samba.tests import env_loadparm
+import samba.tests
 
-class CredentialsTests(unittest.TestCase):
+class CredentialsTests(samba.tests.TestCase):
 
     def setUp(self):
+        super(CredentialsTests, self).setUp()
         settings = {}
         settings["target_hostname"] = "localhost"
-        settings["lp_ctx"] = env_loadparm()
+        settings["lp_ctx"] = samba.tests.env_loadparm()
         self.gensec = gensec.Security.start_client(settings)
 
     def test_info(self):
diff --git a/source4/auth/tests/bindings.py b/source4/auth/tests/bindings.py
index 15368a4..58b66d3 100644
--- a/source4/auth/tests/bindings.py
+++ b/source4/auth/tests/bindings.py
@@ -23,10 +23,11 @@ Note that this just tests the bindings work. It does not intend to test
 the functionality, that's already done in other tests.
 """
 
-import unittest
 from samba import auth
+import samba.tests
+
+class AuthTests(samba.tests.TestCase):
 
-class AuthTests(unittest.TestCase):
     def test_system_session(self):
         auth.system_session()
 
diff --git a/source4/dsdb/pydsdb.c b/source4/dsdb/pydsdb.c
index fd6925d..a911afc 100644
--- a/source4/dsdb/pydsdb.c
+++ b/source4/dsdb/pydsdb.c
@@ -390,6 +390,77 @@ static PyObject *py_dsdb_set_am_rodc(PyObject *self, PyObject *args)
 	Py_RETURN_NONE;
 }
 
+static PyObject *py_dsdb_set_schema_from_ldif(PyObject *self, PyObject *args)
+{
+	WERROR result;
+	char *pf, *df;
+	PyObject *py_ldb;
+	struct ldb_context *ldb;
+
+	if (!PyArg_ParseTuple(args, "Oss", &py_ldb, &pf, &df))
+		return NULL;
+
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+	result = dsdb_set_schema_from_ldif(ldb, pf, df);
+	PyErr_WERROR_IS_ERR_RAISE(result);
+
+	Py_RETURN_NONE;
+}
+
+static PyObject *py_dsdb_set_schema_from_ldb(PyObject *self, PyObject *args)
+{
+	PyObject *py_ldb;
+	struct ldb_context *ldb;
+	PyObject *py_from_ldb;
+	struct ldb_context *from_ldb;
+	struct dsdb_schema *schema;
+	int ret;
+	if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_from_ldb))
+		return NULL;
+
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+	PyErr_LDB_OR_RAISE(py_from_ldb, from_ldb);
+
+	schema = dsdb_get_schema(from_ldb, NULL);
+	if (!schema) {
+		PyErr_SetString(PyExc_RuntimeError, "Failed to set find a schema on 'from' ldb!\n");
+		return NULL;
+	}
+
+	ret = dsdb_reference_schema(ldb, schema, true);
+	PyErr_LDB_ERROR_IS_ERR_RAISE(py_ldb_get_exception(), ret, ldb);
+
+	Py_RETURN_NONE;
+}
+
+static PyObject *py_dsdb_write_prefixes_from_schema_to_ldb(PyObject *self, PyObject *args)
+{
+	PyObject *py_ldb;
+	struct ldb_context *ldb;
+	WERROR result;
+	struct dsdb_schema *schema;
+
+	if (!PyArg_ParseTuple(args, "O", &py_ldb))
+		return NULL;
+
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+	schema = dsdb_get_schema(ldb, NULL);
+	if (!schema) {
+		PyErr_SetString(PyExc_RuntimeError, "Failed to set find a schema on ldb!\n");
+		return NULL;
+	}
+
+	result = dsdb_write_prefixes_from_schema_to_ldb(NULL, ldb, schema);
+	PyErr_WERROR_IS_ERR_RAISE(result);
+
+	Py_RETURN_NONE;
+}
+
+
+
 static PyMethodDef py_dsdb_methods[] = {
 	{ "samdb_server_site_name", (PyCFunction)py_samdb_server_site_name,
 		METH_VARARGS, "Get the server site name as a string"},
@@ -426,6 +497,12 @@ static PyMethodDef py_dsdb_methods[] = {
 	{ "dsdb_set_am_rodc",
 		(PyCFunction)py_dsdb_set_am_rodc, METH_VARARGS,
 		NULL },
+	{ "dsdb_set_schema_from_ldif", (PyCFunction)py_dsdb_set_schema_from_ldif, METH_VARARGS,
+		NULL },
+	{ "dsdb_set_schema_from_ldb", (PyCFunction)py_dsdb_set_schema_from_ldb, METH_VARARGS,
+		NULL },
+	{ "dsdb_write_prefixes_from_schema_to_ldb", (PyCFunction)py_dsdb_write_prefixes_from_schema_to_ldb, METH_VARARGS,
+		NULL },
 	{ NULL }
 };
 
diff --git a/source4/lib/ldb/tests/python/acl.py b/source4/lib/ldb/tests/python/acl.py
index 8a3f4cb..cf061cf 100755
--- a/source4/lib/ldb/tests/python/acl.py
+++ b/source4/lib/ldb/tests/python/acl.py
@@ -4,7 +4,6 @@
 
 import optparse
 import sys
-import os
 import base64
 import re
 
@@ -19,10 +18,10 @@ from samba.ndr import ndr_pack, ndr_unpack
 from samba.dcerpc import security
 
 from samba.auth import system_session
-from samba import Ldb
 from samba import gensec
 from samba.samdb import SamDB
 from samba.credentials import Credentials
+import samba.tests
 from subunit.run import SubunitTestRunner
 import unittest
 
@@ -50,7 +49,7 @@ creds.set_gensec_features(creds.get_gensec_features() | gensec.FEATURE_SEAL)
 # Tests start here
 #
 
-class AclTests(unittest.TestCase):
+class AclTests(samba.tests.TestCase):
 
     def delete_force(self, ldb, dn):
         try:
@@ -66,9 +65,10 @@ class AclTests(unittest.TestCase):
 
     def find_domain_sid(self, ldb):
         res = ldb.search(base=self.base_dn, expression="(objectClass=*)", scope=SCOPE_BASE)
-        return ndr_unpack( security.dom_sid,res[0]["objectSid"][0])
+        return ndr_unpack(security.dom_sid,res[0]["objectSid"][0])
 
     def setUp(self):
+        super(AclTests, self).setUp()
         self.ldb_admin = ldb
         self.base_dn = self.find_basedn(self.ldb_admin)
         self.domain_sid = self.find_domain_sid(self.ldb_admin)
@@ -165,7 +165,7 @@ url: www.example.com
     def read_desc(self, object_dn):
         res = self.ldb_admin.search(object_dn, SCOPE_BASE, None, ["nTSecurityDescriptor"])
         desc = res[0]["nTSecurityDescriptor"][0]
-        return ndr_unpack( security.descriptor, desc )
+        return ndr_unpack(security.descriptor, desc)
 
     def get_ldb_connection(self, target_username, target_password):
         creds_tmp = Credentials()
@@ -181,11 +181,11 @@ url: www.example.com
 
     def get_object_sid(self, object_dn):
         res = self.ldb_admin.search(object_dn)
-        return ndr_unpack( security.dom_sid, res[0]["objectSid"][0] )
+        return ndr_unpack(security.dom_sid, res[0]["objectSid"][0])
 
     def dacl_add_ace(self, object_dn, ace):
-        desc = self.read_desc( object_dn )
-        desc_sddl = desc.as_sddl( self.domain_sid )
+        desc = self.read_desc(object_dn)
+        desc_sddl = desc.as_sddl(self.domain_sid)
         if ace in desc_sddl:
             return
         if desc_sddl.find("(") >= 0:
@@ -202,10 +202,9 @@ url: www.example.com
 
     # Test if we have any additional groups for users than default ones
     def assert_user_no_group_member(self, username):
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
-                                         % self.get_user_dn(username) )
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s)" % self.get_user_dn(username))
         try:
-            self.assertEqual( res[0]["memberOf"][0], "" )
+            self.assertEqual(res[0]["memberOf"][0], "")
         except KeyError:
             pass
         else:
@@ -217,8 +216,9 @@ url: www.example.com
 
 #tests on ldap add operations
 class AclAddTests(AclTests):
+
     def setUp(self):
-        AclTests.setUp(self)
+        super(AclAddTests, self).setUp()
         # Domain admin that will be creator of OU parent-child structure
         self.usr_admin_owner = "acl_add_user1"
         # Second domain admin that will not be creator of OU parent-child structure
@@ -240,6 +240,7 @@ class AclAddTests(AclTests):
         self.ldb_user = self.get_ldb_connection(self.regular_user, self.user_pass)
 
     def tearDown(self):
+        super(AclAddTests, self).tearDown()
         self.delete_force(self.ldb_admin, "CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1," + self.base_dn)
         self.delete_force(self.ldb_admin, "CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1," + self.base_dn)
         self.delete_force(self.ldb_admin, "OU=test_add_ou2,OU=test_add_ou1," + self.base_dn)
@@ -250,9 +251,10 @@ class AclAddTests(AclTests):
 
     # Make sure top OU is deleted (and so everything under it)
     def assert_top_ou_deleted(self):
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("OU=test_add_ou1", self.base_dn) )
-        self.assertEqual( res, [] )
+        res = self.ldb_admin.search(self.base_dn,
+            expression="(distinguishedName=%s,%s)" % (
+                "OU=test_add_ou1", self.base_dn))
+        self.assertEqual(res, [])
 
     def test_add_u1(self):
         """Testing OU with the rights of Doman Admin not creator of the OU """
@@ -269,12 +271,10 @@ class AclAddTests(AclTests):
         # Make sure we HAVE created the two objects -- user and group
         # !!! We should not be able to do that, but however beacuse of ACE ordering our inherited Deny ACE
         # !!! comes after explicit (A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA) that comes from somewhere
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertTrue( len(res) > 0 )
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertTrue( len(res) > 0 )
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s,%s)" % ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn))
+        self.assertTrue(len(res) > 0)
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s,%s)" % ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn))
+        self.assertTrue(len(res) > 0)
 
     def test_add_u2(self):
         """Testing OU with the regular user that has no rights granted over the OU """
@@ -291,12 +291,10 @@ class AclAddTests(AclTests):
         else:
             self.fail()
         # Make sure we HAVEN'T created any of two objects -- user or group
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertEqual( res, [])
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertEqual( res, [])
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s,%s)" % ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn))
+        self.assertEqual(res, [])
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s,%s)" % ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn))
+        self.assertEqual(res, [])
 
     def test_add_u3(self):
         """Testing OU with the rights of regular user granted the right 'Create User child objects' """
@@ -316,12 +314,16 @@ class AclAddTests(AclTests):
         else:
             self.fail()
         # Make sure we HAVE created the one of two objects -- user
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertNotEqual( len(res), 0 )
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertEqual( res, [])
+        res = self.ldb_admin.search(self.base_dn,
+                expression="(distinguishedName=%s,%s)" %
+                ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1",
+                    self.base_dn))
+        self.assertNotEqual(len(res), 0)
+        res = self.ldb_admin.search(self.base_dn,
+                expression="(distinguishedName=%s,%s)" %
+                ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1",
+                    self.base_dn) )
+        self.assertEqual(res, [])
 
     def test_add_u4(self):
         """ 4 Testing OU with the rights of Doman Admin creator of the OU"""
@@ -331,24 +333,24 @@ class AclAddTests(AclTests):
         self.create_test_user(self.ldb_owner, "CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1," + self.base_dn)
         self.create_group(self.ldb_owner, "CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1," + self.base_dn)
         # Make sure we have successfully created the two objects -- user and group
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertTrue( len(res) > 0 )
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s,%s)" \
-                % ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn) )
-        self.assertTrue( len(res) > 0 )
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s,%s)" % ("CN=test_add_user1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn))
+        self.assertTrue(len(res) > 0)
+        res = self.ldb_admin.search(self.base_dn,
+                expression="(distinguishedName=%s,%s)" % ("CN=test_add_group1,OU=test_add_ou2,OU=test_add_ou1", self.base_dn))
+        self.assertTrue(len(res) > 0)
 
 #tests on ldap modify operations
 class AclModifyTests(AclTests):
 
     def setUp(self):
-        AclTests.setUp(self)
+        super(AclModifyTests, self).setUp()
         self.user_with_wp = "acl_mod_user1"
         self.create_enable_user(self.user_with_wp)
         self.ldb_user = self.get_ldb_connection(self.user_with_wp, self.user_pass)
-        self.user_sid = self.get_object_sid( self.get_user_dn(self.user_with_wp))
+        self.user_sid = self.get_object_sid(self.get_user_dn(self.user_with_wp))
 
     def tearDown(self):
+        super(AclModifyTests, self).tearDown()
         self.delete_force(self.ldb_admin, self.get_user_dn("test_modify_user1"))
         self.delete_force(self.ldb_admin, "CN=test_modify_group1,CN=Users," + self.base_dn)
         self.delete_force(self.ldb_admin, "OU=test_modify_ou1," + self.base_dn)
@@ -368,8 +370,8 @@ changetype: modify
 replace: displayName
 displayName: test_changed"""
         self.ldb_user.modify_ldif(ldif)
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
-                                    % self.get_user_dn("test_modify_user1") )
+        res = self.ldb_admin.search(self.base_dn,
+                expression="(distinguishedName=%s)" % self.get_user_dn("test_modify_user1"))
         self.assertEqual(res[0]["displayName"][0], "test_changed")
         # Second test object -- Group
         print "Testing modify on Group object"
@@ -382,8 +384,7 @@ changetype: modify
 replace: displayName
 displayName: test_changed"""
         self.ldb_user.modify_ldif(ldif)
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
-                                    % str("CN=test_modify_group1,CN=Users," + self.base_dn) )
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s)" % str("CN=test_modify_group1,CN=Users," + self.base_dn))
         self.assertEqual(res[0]["displayName"][0], "test_changed")
         # Third test object -- Organizational Unit
         print "Testing modify on OU object"
@@ -396,8 +397,7 @@ changetype: modify
 replace: displayName
 displayName: test_changed"""
         self.ldb_user.modify_ldif(ldif)
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
-                                    % str("OU=test_modify_ou1," + self.base_dn) )
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s)" % str("OU=test_modify_ou1," + self.base_dn))
         self.assertEqual(res[0]["displayName"][0], "test_changed")
 
     def test_modify_u2(self):
@@ -415,8 +415,9 @@ changetype: modify
 replace: displayName
 displayName: test_changed"""
         self.ldb_user.modify_ldif(ldif)
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
-                                    % self.get_user_dn("test_modify_user1") )
+        res = self.ldb_admin.search(self.base_dn,
+                expression="(distinguishedName=%s)" %
+                self.get_user_dn("test_modify_user1"))
         self.assertEqual(res[0]["displayName"][0], "test_changed")
         # Modify on attribute you do not have rights for granted
         ldif = """
@@ -441,8 +442,9 @@ changetype: modify
 replace: displayName
 displayName: test_changed"""
         self.ldb_user.modify_ldif(ldif)
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
-                                    % str("CN=test_modify_group1,CN=Users," + self.base_dn) )
+        res = self.ldb_admin.search(self.base_dn,
+                expression="(distinguishedName=%s)" %
+                str("CN=test_modify_group1,CN=Users," + self.base_dn))
         self.assertEqual(res[0]["displayName"][0], "test_changed")
         # Modify on attribute you do not have rights for granted
         ldif = """
@@ -467,8 +469,9 @@ changetype: modify
 replace: displayName
 displayName: test_changed"""
         self.ldb_user.modify_ldif(ldif)
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
-                                    % str("OU=test_modify_ou1," + self.base_dn) )
+        res = self.ldb_admin.search(self.base_dn,
+                expression="(distinguishedName=%s)" % str("OU=test_modify_ou1,"
+                    + self.base_dn))
         self.assertEqual(res[0]["displayName"][0], "test_changed")
         # Modify on attribute you do not have rights for granted
         ldif = """
@@ -558,7 +561,7 @@ adminDescription: blah blah blah"""
         self.dacl_add_ace(self.get_user_dn(self.user_with_wp), mod)
         # Modify on attribute you have rights for
         self.ldb_user.modify_ldif(ldif)
-        res = self.ldb_admin.search( self.base_dn, expression="(distinguishedName=%s)" \
+        res = self.ldb_admin.search(self.base_dn, expression="(distinguishedName=%s)" \
                                     % self.get_user_dn(self.user_with_wp), attrs=["adminDescription"] )
         self.assertEqual(res[0]["adminDescription"][0], "blah blah blah")
 
@@ -567,12 +570,13 @@ adminDescription: blah blah blah"""
 class AclSearchTests(AclTests):
 
     def setUp(self):
-        AclTests.setUp(self)
+        super(AclTests, self).setUp()
         self.regular_user = "acl_search_user1"
         self.create_enable_user(self.regular_user)
         self.ldb_user = self.get_ldb_connection(self.regular_user, self.user_pass)
 
     def tearDown(self):
+        super(AclSearchTests, self).tearDown()
         self.delete_force(self.ldb_admin, "CN=test_search_user1,OU=test_search_ou1," + self.base_dn)
         self.delete_force(self.ldb_admin, "OU=test_search_ou1," + self.base_dn)
         self.delete_force(self.ldb_admin, self.get_user_dn(self.regular_user))
@@ -584,8 +588,8 @@ class AclSearchTests(AclTests):
         # Create clean OU
         self.delete_force(self.ldb_admin, ou_dn)
         self.create_ou(self.ldb_admin, ou_dn)
-        desc = self.read_desc( ou_dn )
-        desc_sddl = desc.as_sddl( self.domain_sid )
+        desc = self.read_desc(ou_dn)
+        desc_sddl = desc.as_sddl(self.domain_sid)
         # Parse descriptor's SDDL and remove all inherited ACEs reffering
         # to 'Registered Users' or 'Authenticated Users'
         desc_aces = re.findall("\(.*?\)", desc_sddl)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list