tests: Fix exceptions when running cmdline tests on windows

- subprocess.check_output can only handle strings on windows, not bytes,
  so convert the arguments as such
- the pty module is for posix systems only so skip the tests needing it
  in case it is not available
This commit is contained in:
stijn 2015-08-06 12:34:48 +02:00 committed by Damien George
parent 7ede3ec4b1
commit dbfba6a20e

View File

@ -37,13 +37,18 @@ def run_micropython(pyb, args, test_file):
with open(test_file, 'rb') as f:
line = f.readline()
if line.startswith(b'# cmdline:'):
args += line[10:].strip().split()
# subprocess.check_output on Windows only accepts strings, not bytes
args += [str(c, 'utf-8') for c in line[10:].strip().split()]
# run the test, possibly with redirected input
try:
if test_file.startswith('cmdline/repl_'):
# Need to use a PTY to test command line editing
import pty
try:
import pty
except ImportError:
# in case pty module is not available, like on Windows
return b'SKIP\n'
import select
def get():