From: Andreas Schneider Date: Fri, 24 Nov 2017 12:13:55 +0000 (+0100) Subject: python:tests: Create a test user for the dsdb test X-Git-Tag: talloc-2.1.11~358 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6f8e3f7cd0ce2eaad4c8f83d3791bf6904a8bea3;p=thirdparty%2Fsamba.git python:tests: Create a test user for the dsdb test We should never taint the Administrator account as we don't shut down target envionments! Signed-off-by: Andreas Schneider Reviewed-by: Andrew Bartlett Signed-off-by: Andrew Bartlett Autobuild-User(master): Andreas Schneider Autobuild-Date(master): Sat Nov 25 14:13:24 CET 2017 on sn-devel-144 --- diff --git a/python/samba/tests/dsdb.py b/python/samba/tests/dsdb.py index a9f569b6c67..493ea25db53 100644 --- a/python/samba/tests/dsdb.py +++ b/python/samba/tests/dsdb.py @@ -21,6 +21,7 @@ from samba.credentials import Credentials from samba.samdb import SamDB from samba.auth import system_session from samba.tests import TestCase +from samba.tests import delete_force from samba.ndr import ndr_unpack, ndr_pack from samba.dcerpc import drsblobs from samba import dsdb @@ -42,14 +43,27 @@ class DsdbTests(TestCase): credentials=self.creds, lp=self.lp) + # Create a test user + user_name = "samdb-testuser" + user_pass = samba.generate_random_password(32, 32) + user_description = "Test user for dsdb test" + + base_dn = self.samdb.domain_dn() + + self.account_dn = "cn=" + user_name + ",cn=Users," + base_dn + delete_force(self.samdb, self.account_dn) + self.samdb.newuser(username=user_name, + password=user_pass, + description=user_description) + def test_get_oid_from_attrid(self): oid = self.samdb.get_oid_from_attid(591614) self.assertEquals(oid, "1.2.840.113556.1.4.1790") def test_error_replpropertymetadata(self): - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, - attrs=["replPropertyMetaData"]) + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, + attrs=["replPropertyMetaData"]) repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, str(res[0]["replPropertyMetaData"])) ctr = repl.ctr @@ -65,9 +79,9 @@ class DsdbTests(TestCase): self.assertRaises(ldb.LdbError, self.samdb.modify, msg, ["local_oid:1.3.6.1.4.1.7165.4.3.14:0"]) def test_error_replpropertymetadata_nochange(self): - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, - attrs=["replPropertyMetaData"]) + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, + attrs=["replPropertyMetaData"]) repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, str(res[0]["replPropertyMetaData"])) replBlob = ndr_pack(repl) @@ -77,9 +91,9 @@ class DsdbTests(TestCase): self.assertRaises(ldb.LdbError, self.samdb.modify, msg, ["local_oid:1.3.6.1.4.1.7165.4.3.14:0"]) def test_error_replpropertymetadata_allow_sort(self): - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, - attrs=["replPropertyMetaData"]) + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, + attrs=["replPropertyMetaData"]) repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, str(res[0]["replPropertyMetaData"])) replBlob = ndr_pack(repl) @@ -89,9 +103,9 @@ class DsdbTests(TestCase): self.samdb.modify(msg, ["local_oid:1.3.6.1.4.1.7165.4.3.14:0", "local_oid:1.3.6.1.4.1.7165.4.3.25:0"]) def test_twoatt_replpropertymetadata(self): - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, - attrs=["replPropertyMetaData", "uSNChanged"]) + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, + attrs=["replPropertyMetaData", "uSNChanged"]) repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, str(res[0]["replPropertyMetaData"])) ctr = repl.ctr @@ -109,9 +123,9 @@ class DsdbTests(TestCase): self.assertRaises(ldb.LdbError, self.samdb.modify, msg, ["local_oid:1.3.6.1.4.1.7165.4.3.14:0"]) def test_set_replpropertymetadata(self): - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, - attrs=["replPropertyMetaData", "uSNChanged"]) + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, + attrs=["replPropertyMetaData", "uSNChanged"]) repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, str(res[0]["replPropertyMetaData"])) ctr = repl.ctr @@ -135,17 +149,17 @@ class DsdbTests(TestCase): self.assertEquals(self.samdb.get_attribute_from_attid(11979), None) def test_get_attribute_replmetadata_version(self): - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, - attrs=["dn"]) + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, + attrs=["dn"]) self.assertEquals(len(res), 1) dn = str(res[0].dn) - self.assertEqual(self.samdb.get_attribute_replmetadata_version(dn, "unicodePwd"), 1) + self.assertEqual(self.samdb.get_attribute_replmetadata_version(dn, "unicodePwd"), 2) def test_set_attribute_replmetadata_version(self): - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, - attrs=["dn"]) + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, + attrs=["dn"]) self.assertEquals(len(res), 1) dn = str(res[0].dn) version = self.samdb.get_attribute_replmetadata_version(dn, "description") @@ -509,8 +523,8 @@ class DsdbTests(TestCase): def test_no_error_on_invalid_control(self): try: - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, attrs=["replPropertyMetaData"], controls=["local_oid:%s:0" % dsdb.DSDB_CONTROL_INVALID_NOT_IMPLEMENTED]) @@ -519,8 +533,8 @@ class DsdbTests(TestCase): def test_error_on_invalid_critical_control(self): try: - res = self.samdb.search(expression="cn=Administrator", - scope=ldb.SCOPE_SUBTREE, + res = self.samdb.search(scope=ldb.SCOPE_SUBTREE, + base=self.account_dn, attrs=["replPropertyMetaData"], controls=["local_oid:%s:1" % dsdb.DSDB_CONTROL_INVALID_NOT_IMPLEMENTED])