mirror of
https://github.com/samba-team/samba.git
synced 2025-08-26 01:49:31 +03:00
s4/dsdb/tests/python: PY3 port for samba4.ldap.rodc_rwdc.python
* Make sure samba-tool is called with correct PYTHON version * Convert ldb.bytes results to string for comparison with expected results Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
@ -27,9 +27,14 @@ from samba.credentials import Credentials, DONT_USE_KERBEROS, MUST_USE_KERBEROS
|
||||
from samba import gensec, dsdb
|
||||
from ldb import SCOPE_BASE, LdbError, ERR_INVALID_CREDENTIALS
|
||||
from samba.dcerpc import security, samr
|
||||
import os
|
||||
|
||||
import password_lockout_base
|
||||
|
||||
def adjust_cmd_for_py_version(parts):
|
||||
if os.getenv("PYTHON", None):
|
||||
parts.insert(0, os.environ["PYTHON"])
|
||||
return parts
|
||||
|
||||
def passwd_encode(pw):
|
||||
return base64.b64encode(('"%s"' % pw).encode('utf-16-le')).decode('utf8')
|
||||
@ -73,10 +78,10 @@ def set_auto_replication(dc, allow):
|
||||
|
||||
for opt in ['DISABLE_INBOUND_REPL',
|
||||
'DISABLE_OUTBOUND_REPL']:
|
||||
cmd = ['bin/samba-tool',
|
||||
cmd = adjust_cmd_for_py_version(['bin/samba-tool',
|
||||
'drs', 'options',
|
||||
credstring, dc,
|
||||
"--dsa-option=%s%s" % (on_or_off, opt)]
|
||||
"--dsa-option=%s%s" % (on_or_off, opt)])
|
||||
|
||||
p = subprocess.Popen(cmd,
|
||||
stderr=subprocess.PIPE,
|
||||
@ -94,11 +99,11 @@ def preload_rodc_user(user_dn):
|
||||
CREDS.get_password())
|
||||
|
||||
set_auto_replication(RWDC, True)
|
||||
cmd = ['bin/samba-tool',
|
||||
cmd = adjust_cmd_for_py_version(['bin/samba-tool',
|
||||
'rodc', 'preload',
|
||||
user_dn,
|
||||
credstring,
|
||||
'--server', RWDC, ]
|
||||
'--server', RWDC, ])
|
||||
|
||||
print(' '.join(cmd))
|
||||
subprocess.check_call(cmd)
|
||||
@ -154,11 +159,11 @@ class RodcRwdcCachedTests(password_lockout_base.BasePasswordTestCase):
|
||||
# XXX feels like a horrendous way to do it.
|
||||
credstring = '-U%s%%%s' % (CREDS.get_username(),
|
||||
CREDS.get_password())
|
||||
cmd = ['bin/samba-tool',
|
||||
cmd = adjust_cmd_for_py_version(['bin/samba-tool',
|
||||
'drs', 'replicate',
|
||||
RODC, RWDC, base,
|
||||
credstring,
|
||||
'--sync-forced']
|
||||
'--sync-forced'])
|
||||
|
||||
p = subprocess.Popen(cmd,
|
||||
stderr=subprocess.PIPE,
|
||||
@ -694,11 +699,11 @@ class RodcRwdcTests(password_lockout_base.BasePasswordTestCase):
|
||||
# XXX feels like a horrendous way to do it.
|
||||
credstring = '-U%s%%%s' % (CREDS.get_username(),
|
||||
CREDS.get_password())
|
||||
cmd = ['bin/samba-tool',
|
||||
cmd = adjust_cmd_for_py_version(['bin/samba-tool',
|
||||
'drs', 'replicate',
|
||||
RODC, RWDC, base,
|
||||
credstring,
|
||||
'--sync-forced']
|
||||
'--sync-forced'])
|
||||
|
||||
p = subprocess.Popen(cmd,
|
||||
stderr=subprocess.PIPE,
|
||||
@ -909,7 +914,7 @@ class RodcRwdcTests(password_lockout_base.BasePasswordTestCase):
|
||||
res = self.rodc_db.search(dn,
|
||||
scope=ldb.SCOPE_SUBTREE,
|
||||
attrs=[attr])
|
||||
results = [x[attr][0] for x in res]
|
||||
results = [str(x[attr][0]) for x in res]
|
||||
self.assertEqual(results, [value])
|
||||
except ldb.LdbError as e:
|
||||
self.assertNotEqual(e.args[0], ldb.ERR_NO_SUCH_OBJECT,
|
||||
@ -954,7 +959,7 @@ class RodcRwdcTests(password_lockout_base.BasePasswordTestCase):
|
||||
res = self.rodc_db.search(dn,
|
||||
scope=ldb.SCOPE_SUBTREE,
|
||||
attrs=[attr])
|
||||
results = [x[attr][0] for x in res]
|
||||
results = [str(x[attr][0]) for x in res]
|
||||
self.assertEqual(results, [value])
|
||||
except ldb.LdbError as e:
|
||||
self.assertNotEqual(e.args[0], ldb.ERR_NO_SUCH_OBJECT,
|
||||
|
Reference in New Issue
Block a user