diff options
author | Noel Power <noel.power@suse.com> | 2018-08-11 14:02:25 +0100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2018-09-03 03:22:22 +0200 |
commit | 638476f86d4f8072de186eac562c176bacef68ef (patch) | |
tree | fdad6cf3e36efc3aa34232bd66f5a186da3d1dec /python/samba | |
parent | 210b950c81d252c0af0fb82cb9241fad0ead5280 (diff) | |
download | samba-638476f86d4f8072de186eac562c176bacef68ef.tar.gz |
python/samba: PY3 port for samba.tests.samba_tool.user_wdigest test
In addition to the attributes that caused some issues specifically
with the test some other ldb.bytes objects (those seen to be
used as strings) have been adjusted (with str()) to ensure they should
work correct in PY3.
Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'python/samba')
-rw-r--r-- | python/samba/netcmd/user.py | 29 | ||||
-rw-r--r-- | python/samba/tests/samba_tool/user_wdigest.py | 2 |
2 files changed, 16 insertions, 15 deletions
diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py index 7f4c0951050..0d13b30a3c9 100644 --- a/python/samba/netcmd/user.py +++ b/python/samba/netcmd/user.py @@ -55,6 +55,7 @@ from samba.netcmd import ( Option, ) from samba.compat import text_type +from samba.compat import get_bytes try: import io @@ -984,11 +985,11 @@ class GetPasswordCommand(Command): unicodePwd = obj["unicodePwd"][0] if add_unicodePwd: del obj["unicodePwd"] - account_name = obj["sAMAccountName"][0] + account_name = str(obj["sAMAccountName"][0]) if add_sAMAcountName: del obj["sAMAccountName"] if "userPrincipalName" in obj: - account_upn = obj["userPrincipalName"][0] + account_upn = str(obj["userPrincipalName"][0]) else: realm = self.lp.get("realm") account_upn = "%s@%s" % (account_name, realm.lower()) @@ -1168,7 +1169,7 @@ class GetPasswordCommand(Command): primary_wdigest) try: digest = binascii.hexlify(bytearray(digests.hashes[i - 1].hash)) - return "%s:%s:%s" % (user, realm, digest) + return "%s:%s:%s" % (user, realm, text_type(digest, 'utf8')) except IndexError: return None @@ -1873,13 +1874,13 @@ samba-tool user syncpasswords --terminate \\ self.sync_command = sync_command add_ldif = "dn: %s\n" % self.cache_dn add_ldif += "objectClass: userSyncPasswords\n" - add_ldif += "samdbUrl:: %s\n" % base64.b64encode(self.samdb_url).decode('utf8') - add_ldif += "dirsyncFilter:: %s\n" % base64.b64encode(self.dirsync_filter).decode('utf8') + add_ldif += "samdbUrl:: %s\n" % base64.b64encode(get_bytes(self.samdb_url)).decode('utf8') + add_ldif += "dirsyncFilter:: %s\n" % base64.b64encode(get_bytes(self.dirsync_filter)).decode('utf8') for a in self.dirsync_attrs: - add_ldif += "dirsyncAttribute:: %s\n" % base64.b64encode(a).decode('utf8') + add_ldif += "dirsyncAttribute:: %s\n" % base64.b64encode(get_bytes(a)).decode('utf8') add_ldif += "dirsyncControl: %s\n" % self.dirsync_controls[0] for a in self.password_attrs: - add_ldif += "passwordAttribute:: %s\n" % base64.b64encode(a).decode('utf8') + add_ldif += "passwordAttribute:: %s\n" % base64.b64encode(get_bytes(a)).decode('utf8') if self.decrypt_samba_gpg: add_ldif += "decryptSambaGPG: TRUE\n" else: @@ -1895,22 +1896,22 @@ samba-tool user syncpasswords --terminate \\ ldif = self.cache.write_ldif(msg, ldb.CHANGETYPE_NONE) self.outf.write("%s" % ldif) else: - self.dirsync_filter = res[0]["dirsyncFilter"][0] + self.dirsync_filter = str(res[0]["dirsyncFilter"][0]) self.dirsync_attrs = [] for a in res[0]["dirsyncAttribute"]: - self.dirsync_attrs.append(a) - self.dirsync_controls = [res[0]["dirsyncControl"][0], "extended_dn:1:0"] + self.dirsync_attrs.append(str(a)) + self.dirsync_controls = [str(res[0]["dirsyncControl"][0]), "extended_dn:1:0"] self.password_attrs = [] for a in res[0]["passwordAttribute"]: - self.password_attrs.append(a) - decrypt_string = res[0]["decryptSambaGPG"][0] + self.password_attrs.append(str(a)) + decrypt_string = str(res[0]["decryptSambaGPG"][0]) assert(decrypt_string in ["TRUE", "FALSE"]) if decrypt_string == "TRUE": self.decrypt_samba_gpg = True else: self.decrypt_samba_gpg = False if "syncCommand" in res[0]: - self.sync_command = res[0]["syncCommand"][0] + self.sync_command = str(res[0]["syncCommand"][0]) else: self.sync_command = None if "currentPid" in res[0]: @@ -2154,7 +2155,7 @@ samba-tool user syncpasswords --terminate \\ def dirsync_loop(): while True: - res = self.samdb.search(expression=self.dirsync_filter, + res = self.samdb.search(expression=str(self.dirsync_filter), scope=ldb.SCOPE_SUBTREE, attrs=self.dirsync_attrs, controls=self.dirsync_controls) diff --git a/python/samba/tests/samba_tool/user_wdigest.py b/python/samba/tests/samba_tool/user_wdigest.py index 7817744ef8b..cd43a663e54 100644 --- a/python/samba/tests/samba_tool/user_wdigest.py +++ b/python/samba/tests/samba_tool/user_wdigest.py @@ -76,7 +76,7 @@ class UserCmdWdigestTestCase(SambaToolCmdTest): base=self.samdb.get_config_basedn(), expression="ncName=%s" % self.samdb.get_default_basedn(), attrs=["nETBIOSName"]) - self.netbios_domain = res[0]["nETBIOSName"][0] + self.netbios_domain = str(res[0]["nETBIOSName"][0]) self.runsubcmd("user", "create", USER_NAME, |