From 2ce099416c387a554eb9f69f40348be3ebe0c86f Mon Sep 17 00:00:00 2001 From: Josip Sokcevic Date: Fri, 20 Mar 2020 16:51:51 +0000 Subject: [PATCH] Add win support for subprocess2 unit tests Change-Id: Idea502dc67d8cf0b7387c1b68eb0c62837af971b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2111430 Reviewed-by: Edward Lesmes Commit-Queue: Josip Sokcevic --- PRESUBMIT.py | 1 - testing_support/subprocess2_test_script.py | 18 ++++++++++++++---- tests/subprocess2_test.py | 9 +++++---- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/PRESUBMIT.py b/PRESUBMIT.py index f1606bdf3..b214d78d0 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py @@ -88,7 +88,6 @@ def CommonChecks(input_api, output_api, tests_to_black_list, run_on_python3): r'.*ninjalog_uploader_test\.py$', r'.*recipes_test\.py$', r'.*roll_dep_test\.py$', - r'.*subprocess2_test\.py$', ] # TODO(maruel): Make sure at least one file is modified first. diff --git a/testing_support/subprocess2_test_script.py b/testing_support/subprocess2_test_script.py index 83b64446e..5fe27c63c 100644 --- a/testing_support/subprocess2_test_script.py +++ b/testing_support/subprocess2_test_script.py @@ -38,11 +38,21 @@ if args: def do(string): if options.stdout: - sys.stdout.write(string.upper()) - sys.stdout.write(options.eol) + if sys.version_info.major == 2: + sys.stdout.write(string.upper()) + sys.stdout.write(options.eol) + else: + sys.stdout.buffer.write(string.upper().encode('utf-8')) + sys.stdout.buffer.write(options.eol.encode('utf-8')) if options.stderr: - sys.stderr.write(string.lower()) - sys.stderr.write(options.eol) + if sys.version_info.major == 2: + sys.stderr.write(string.lower()) + sys.stderr.write(options.eol) + else: + sys.stderr.buffer.write(string.lower().encode('utf-8')) + sys.stderr.buffer.write(options.eol.encode('utf-8')) + sys.stderr.flush() + do('A') do('BB') diff --git a/tests/subprocess2_test.py b/tests/subprocess2_test.py index 017bebc3a..7dc7283b6 100755 --- a/tests/subprocess2_test.py +++ b/tests/subprocess2_test.py @@ -20,10 +20,11 @@ sys.path.insert(0, DEPOT_TOOLS) import subprocess import subprocess2 +TEST_FILENAME = 'subprocess2_test_script.py' TEST_COMMAND = [ sys.executable, - os.path.join(DEPOT_TOOLS, 'testing_support', 'subprocess2_test_script.py'), + os.path.join(DEPOT_TOOLS, 'testing_support', TEST_FILENAME), ] @@ -143,11 +144,11 @@ class SmokeTests(unittest.TestCase): subp.check_output(TEST_COMMAND, stdout=subp.PIPE) def test_print_exception(self): - cmd = TEST_COMMAND + ['--fail', '--stdout'] with self.assertRaises(subprocess2.CalledProcessError) as e: - subprocess2.check_output(cmd) + subprocess2.check_output(TEST_COMMAND + ['--fail', '--stdout']) exception_str = str(e.exception) - self.assertIn(' '.join(cmd), exception_str) + # Windows escapes backslashes so check only filename + self.assertIn(TEST_FILENAME + ' --fail --stdout', exception_str) self.assertIn(str(e.exception.returncode), exception_str) self.assertIn(e.exception.stdout.decode('utf-8', 'ignore'), exception_str)