[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