test: xkeyboard-config: use universal_newlines instead of decode

This way stdin/stdout of the process are opened in text mode and we don't need
manually decode.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
master
Peter Hutterer 2019-11-01 09:54:29 +10:00 committed by Ran Benita
parent 7832cc727c
commit f4a0f73882
1 changed files with 9 additions and 7 deletions

View File

@ -57,12 +57,13 @@ def xkbcommontool(rmlvo):
print(':: {}'.format(' '.join(args)), file=out)
try:
output = subprocess.check_output(args, stderr=subprocess.STDOUT)
output = subprocess.check_output(args, stderr=subprocess.STDOUT,
universal_newlines=True)
if verbose:
print(output.decode('utf-8'), file=out)
print(output, file=out)
except subprocess.CalledProcessError as err:
print('ERROR: Failed to compile: {}'.format(' '.join(args)), file=out)
print(err.output.decode('utf-8'), file=out)
print(err.output, file=out)
success = False
return success, out.getvalue()
@ -101,20 +102,21 @@ def xkbcomp(rmlvo):
setxkbmap = subprocess.Popen(args, stdout=subprocess.PIPE)
xkbcomp = subprocess.Popen(xkbcomp_args, stdin=setxkbmap.stdout,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
universal_newlines=True)
setxkbmap.stdout.close()
stdout, stderr = xkbcomp.communicate()
if xkbcomp.returncode != 0:
print('ERROR: Failed to compile: {}'.format(' '.join(args)), file=out)
success = False
if xkbcomp.returncode != 0 or verbose:
print(stdout.decode('utf-8'), file=out)
print(stderr.decode('utf-8'), file=out)
print(stdout, file=out)
print(stderr, file=out)
# This catches setxkbmap errors.
except subprocess.CalledProcessError as err:
print('ERROR: Failed to compile: {}'.format(' '.join(args)), file=out)
print(err.output.decode('utf-8'), file=out)
print(err.output, file=out)
success = False
return success, out.getvalue()