diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2017-02-16 10:07:33 +0100 |
---|---|---|
committer | Lukas Slebodnik <lslebodn@redhat.com> | 2017-02-17 13:29:22 +0100 |
commit | bac4458c89a589055ae3daf4f72cc7dba886264a (patch) | |
tree | 7c3b51b690bea37f008adc3ab6ec44aa1d8d406b | |
parent | 334029028e566fab3dce5ce4b1b53cc4809c21b8 (diff) | |
download | sssd-bac4458c89a589055ae3daf4f72cc7dba886264a.tar.gz sssd-bac4458c89a589055ae3daf4f72cc7dba886264a.tar.xz sssd-bac4458c89a589055ae3daf4f72cc7dba886264a.zip |
intg: Fix python3 issues
NamedTemporaryFile use the default mode 'w+b'
and we tried to write strings. It is not a problem on python2
but failed on pyhton3
Python module ctypes directly uses C functions from libraries.
C functions usually expect/returns "char *" when string is expected.
But python3 uses unicode for string. Decoding returned bytes
("char *") to unicode strings simplify tests in python3.
Otherwise we would need to convert bytes to string in each assertion.
Reviewed-by: Martin Basti <mbasti@redhat.com>
-rw-r--r-- | src/tests/intg/files_ops.py | 3 | ||||
-rw-r--r-- | src/tests/intg/sssd_group.py | 6 | ||||
-rw-r--r-- | src/tests/intg/sssd_passwd.py | 11 |
3 files changed, 12 insertions, 8 deletions
diff --git a/src/tests/intg/files_ops.py b/src/tests/intg/files_ops.py index 65b3e5ee4..62f56517d 100644 --- a/src/tests/intg/files_ops.py +++ b/src/tests/intg/files_ops.py @@ -76,7 +76,8 @@ class FilesOps(object): return contents def _write_contents(self, contents): - tmp_file = tempfile.NamedTemporaryFile(dir=self.tmp_dir, delete=False) + tmp_file = tempfile.NamedTemporaryFile(mode='w', dir=self.tmp_dir, + delete=False) tmp_file.writelines(contents) tmp_file.flush() diff --git a/src/tests/intg/sssd_group.py b/src/tests/intg/sssd_group.py index a9cfb32d5..ab873a726 100644 --- a/src/tests/intg/sssd_group.py +++ b/src/tests/intg/sssd_group.py @@ -46,6 +46,7 @@ def getgrnam_r(name, result_p, buffer_p, buflen): errno = POINTER(c_int)(c_int(0)) + name = name.encode('utf-8') res = func(c_char_p(name), result_p, buffer_p, buflen, errno) return (int(res), int(errno[0]), result_p) @@ -56,13 +57,14 @@ def set_group_dict(res, result_p): return dict() group_dict = dict() - group_dict['name'] = result_p[0].gr_name + group_dict['name'] = result_p[0].gr_name.decode('utf-8') group_dict['gid'] = result_p[0].gr_gid group_dict['mem'] = list() i = 0 while result_p[0].gr_mem[i] != None: - group_dict['mem'].append(result_p[0].gr_mem[i]) + grp_name = result_p[0].gr_mem[i].decode('utf-8') + group_dict['mem'].append(grp_name) i = i+1 return group_dict diff --git a/src/tests/intg/sssd_passwd.py b/src/tests/intg/sssd_passwd.py index 8b741ea8c..f285b4971 100644 --- a/src/tests/intg/sssd_passwd.py +++ b/src/tests/intg/sssd_passwd.py @@ -38,13 +38,13 @@ def set_user_dict(res, result_p): return dict() user_dict = dict() - user_dict['name'] = result_p[0].pw_name - user_dict['passwd'] = result_p[0].pw_passwd + user_dict['name'] = result_p[0].pw_name.decode('utf-8') + user_dict['passwd'] = result_p[0].pw_passwd.decode('utf-8') user_dict['uid'] = result_p[0].pw_uid user_dict['gid'] = result_p[0].pw_gid - user_dict['gecos'] = result_p[0].pw_gecos - user_dict['dir'] = result_p[0].pw_dir - user_dict['shell'] = result_p[0].pw_shell + user_dict['gecos'] = result_p[0].pw_gecos.decode('utf-8') + user_dict['dir'] = result_p[0].pw_dir.decode('utf-8') + user_dict['shell'] = result_p[0].pw_shell.decode('utf-8') return user_dict @@ -64,6 +64,7 @@ def getpwnam_r(name, result_p, buffer_p, buflen): errno = POINTER(c_int)(c_int(0)) + name = name.encode('utf-8') res = func(c_char_p(name), result_p, buffer_p, buflen, errno) return (int(res), int(errno[0]), result_p) |