From dc6b83bec9bdcc149db08711cc9dfd555a8620fa Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Fri, 6 Apr 2018 13:59:08 +0100 Subject: [PATCH] Support Python3 in approval tests --- scripts/approvalTests.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/scripts/approvalTests.py b/scripts/approvalTests.py index a2ab5d5a2..16cc7b7d2 100755 --- a/scripts/approvalTests.py +++ b/scripts/approvalTests.py @@ -72,10 +72,17 @@ overallResult = 0 +def openFile(file, mode): + try: + return open(file, mode, encoding='utf-8', errors='surrogateescape') + except TypeError: + import io + return io.open(file, mode, encoding='utf-8', errors='surrogateescape') + def diffFiles(fileA, fileB): - with open(fileA, 'r') as file: + with openFile(fileA, 'r') as file: aLines = [line.rstrip() for line in file.readlines()] - with open(fileB, 'r') as file: + with openFile(fileB, 'r') as file: bLines = [line.rstrip() for line in file.readlines()] shortenedFilenameA = fileA.rsplit(os.sep, 1)[-1] @@ -139,8 +146,8 @@ def approve(baseName, args): subprocess.call(args, stdout=f, stderr=f) f.close() - rawFile = open(rawResultsPath, 'r') - filteredFile = open(filteredResultsPath, 'w') + rawFile = openFile(rawResultsPath, 'r') + filteredFile = openFile(filteredResultsPath, 'w') for line in rawFile: filteredFile.write(filterLine(line).rstrip() + "\n") filteredFile.close()