test: xkeyboard-config: use universal_newlines instead of decode
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 31 Oct 2019 23:54:29 +0000 (09:54 +1000)
committerRan Benita <ran234@gmail.com>
Fri, 1 Nov 2019 08:24:03 +0000 (10:24 +0200)
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>
test/xkeyboard-config-test.py.in

index e965858..fbc4784 100755 (executable)
@@ -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()