from samba.compat import PY3, text_type
from samba.compat import string_types
from random import randint
+from random import SystemRandom
+import string
try:
from samba.samdb import SamDB
except ImportError:
c.set_kerberos_state(kerberos_state)
return c
-
-
# These functions didn't exist before Python2.7:
if sys.version_info < (2, 7):
import warnings
result.addSuccess(self)
def run(self, result=None):
- if result is None: result = self.defaultTestResult()
+ if result is None:
+ result = self.defaultTestResult()
result.startTest(self)
testMethod = getattr(self, self._testMethodName)
try:
for (fn, args, kwargs) in reversed(getattr(self, "_cleanups", [])):
fn(*args, **kwargs)
- if ok: result.addSuccess(self)
+ if ok:
+ result.addSuccess(self)
finally:
result.stopTest(self)
bindir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../../bin"))
parts = line.split(" ")
if os.path.exists(os.path.join(bindir, parts[0])):
+ cmd = parts[0]
parts[0] = os.path.join(bindir, parts[0])
+ if cmd == "samba-tool" and os.getenv("PYTHON", None):
+ parts = [os.environ["PYTHON"]] + parts
line = " ".join(parts)
return line
raise BlackboxProcessError(retcode, line, stdoutdata, stderrdata)
return stdoutdata
+ # Generate a random password that can be safely passed on the command line
+ # i.e. it does not contain any shell meta characters.
+ def random_password(self, count=32):
+ password = SystemRandom().choice(string.ascii_uppercase)
+ password += SystemRandom().choice(string.digits)
+ password += SystemRandom().choice(string.ascii_lowercase)
+ password += ''.join(SystemRandom().choice(string.ascii_uppercase +
+ string.ascii_lowercase +
+ string.digits) for x in range(count - 3))
+ return password
+
def connect_samdb(samdb_url, lp=None, session_info=None, credentials=None,
flags=0, ldb_options=None, ldap_only=False, global_schema=True):
to make proper URL for ldb.connect() while using default
parameters for connection based on test environment
"""
- if not "://" in samdb_url:
+ if "://" not in samdb_url:
if not ldap_only and os.path.isfile(samdb_url):
samdb_url = "tdb://%s" % samdb_url
else: