mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
selftest: Use @DynamicTestCase in user_account_control test_uac_bits_unrelated_modify()
This is a nice easy example of how the test generation code works, and it combined nicely with the earlier patch to return string names from the UF_ constants. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
This commit is contained in:
parent
fb6c0b9e2a
commit
8701ce492f
@ -26,7 +26,7 @@ from samba.samdb import SamDB
|
||||
from samba.dcerpc import samr, security, lsa
|
||||
from samba.credentials import Credentials
|
||||
from samba.ndr import ndr_unpack, ndr_pack
|
||||
from samba.tests import delete_force
|
||||
from samba.tests import delete_force, DynamicTestCase
|
||||
from samba import gensec, sd_utils
|
||||
from samba.credentials import DONT_USE_KERBEROS
|
||||
from ldb import SCOPE_SUBTREE, SCOPE_BASE, LdbError
|
||||
@ -40,6 +40,7 @@ from samba.dsdb import UF_SCRIPT, UF_ACCOUNTDISABLE, UF_00000004, UF_HOMEDIR_REQ
|
||||
UF_TRUSTED_FOR_DELEGATION, UF_NOT_DELEGATED, UF_USE_DES_KEY_ONLY, UF_DONT_REQUIRE_PREAUTH, \
|
||||
UF_PASSWORD_EXPIRED, UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION, UF_NO_AUTH_DATA_REQUIRED, \
|
||||
UF_PARTIAL_SECRETS_ACCOUNT, UF_USE_AES_KEYS
|
||||
from samba import dsdb
|
||||
|
||||
|
||||
parser = optparse.OptionParser("user_account_control.py [options] <host>")
|
||||
@ -85,7 +86,15 @@ bits = [UF_SCRIPT, UF_ACCOUNTDISABLE, UF_00000004, UF_HOMEDIR_REQUIRED,
|
||||
account_types = set([UF_NORMAL_ACCOUNT, UF_WORKSTATION_TRUST_ACCOUNT, UF_SERVER_TRUST_ACCOUNT])
|
||||
|
||||
|
||||
@DynamicTestCase
|
||||
class UserAccountControlTests(samba.tests.TestCase):
|
||||
@classmethod
|
||||
def setUpDynamicTestCases(cls):
|
||||
for account_type in [UF_NORMAL_ACCOUNT, UF_WORKSTATION_TRUST_ACCOUNT]:
|
||||
account_type_str = dsdb.user_account_control_flag_bit_to_string(account_type)
|
||||
cls.generate_dynamic_test("test_uac_bits_unrelated_modify",
|
||||
account_type_str, account_type)
|
||||
|
||||
def add_computer_ldap(self, computername, others=None, samdb=None):
|
||||
if samdb is None:
|
||||
samdb = self.samdb
|
||||
@ -435,7 +444,7 @@ class UserAccountControlTests(samba.tests.TestCase):
|
||||
else:
|
||||
self.fail("Unable to set userAccountControl bit 0x%08X on %s: %s" % (bit, m.dn, estr))
|
||||
|
||||
def uac_bits_unrelated_modify_helper(self, account_type):
|
||||
def _test_uac_bits_unrelated_modify_with_args(self, account_type):
|
||||
user_sid = self.sd_utils.get_object_sid(self.unpriv_user_dn)
|
||||
mod = "(OA;;CC;bf967a86-0de6-11d0-a285-00aa003049e2;;%s)" % str(user_sid)
|
||||
|
||||
@ -602,12 +611,6 @@ class UserAccountControlTests(samba.tests.TestCase):
|
||||
UF_NORMAL_ACCOUNT | UF_ACCOUNTDISABLE | UF_PASSWD_NOTREQD,
|
||||
"bit 0X%08x should have been removed" % bit)
|
||||
|
||||
def test_uac_bits_unrelated_modify_normal(self):
|
||||
self.uac_bits_unrelated_modify_helper(UF_NORMAL_ACCOUNT)
|
||||
|
||||
def test_uac_bits_unrelated_modify_workstation(self):
|
||||
self.uac_bits_unrelated_modify_helper(UF_WORKSTATION_TRUST_ACCOUNT)
|
||||
|
||||
def test_uac_bits_add(self):
|
||||
computername = self.computernames[0]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user