From 01aee4a0dc481aa40ed5d8d0532eea7daec43441 Mon Sep 17 00:00:00 2001 From: datadiode Date: Sun, 11 Jan 2015 10:39:24 +0100 Subject: [PATCH] Fix Python test scripts for Python 3 and Windows --- test/runjsontests.py | 6 +++--- test/rununittests.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/runjsontests.py b/test/runjsontests.py index 9422d57..62e5600 100644 --- a/test/runjsontests.py +++ b/test/runjsontests.py @@ -34,7 +34,7 @@ def compareOutputs( expected, actual, message ): def safeReadFile( path ): try: - return file( path, 'rt' ).read() + return open( path, 'rt', encoding = 'utf-8' ).read() except IOError as e: return '' % (path,e) @@ -77,13 +77,13 @@ def runAllTests( jsontest_executable_path, input_dir = None, base_path = os.path.splitext(input_path)[0] actual_output = safeReadFile( base_path + '.actual' ) actual_rewrite_output = safeReadFile( base_path + '.actual-rewrite' ) - file(base_path + '.process-output','wt').write( process_output ) + open(base_path + '.process-output', 'wt', encoding = 'utf-8').write( process_output ) if status: print('parsing failed') failed_tests.append( (input_path, 'Parsing failed:\n' + process_output) ) else: expected_output_path = os.path.splitext(input_path)[0] + '.expected' - expected_output = file( expected_output_path, 'rt' ).read() + expected_output = open( expected_output_path, 'rt', encoding = 'utf-8' ).read() detail = ( compareOutputs( expected_output, actual_output, 'input' ) or compareOutputs( expected_output, actual_rewrite_output, 'rewrite' ) ) if detail: diff --git a/test/rununittests.py b/test/rununittests.py index 6279f80..90b7bb9 100644 --- a/test/rununittests.py +++ b/test/rununittests.py @@ -31,7 +31,7 @@ def runAllTests( exe_path, use_valgrind=False ): if not status: print("Failed to obtain unit tests list:\n" + test_names, file=sys.stderr) return 1 - test_names = [name.strip() for name in test_names.strip().split('\n')] + test_names = [name.strip() for name in test_names.decode('utf-8').strip().split('\n')] failures = [] for name in test_names: print('TESTING %s:' % name, end=' ')