bpo-33671: Add support.MS_WINDOWS and support.MACOS (GH-7800)
* Add support.MS_WINDOWS: True if Python is running on Microsoft Windows.
* Add support.MACOS: True if Python is running on Apple macOS.
* Replace support.is_android with support.ANDROID
* Replace support.is_jython with support.JYTHON
* Cleanup code to initialize unix_shell
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 4b089f5..569e3e0 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -35,13 +35,11 @@
if support.PGO:
raise unittest.SkipTest("test is not helpful for PGO")
-mswindows = (sys.platform == "win32")
-
#
# Depends on the following external programs: Python
#
-if mswindows:
+if support.MS_WINDOWS:
SETBINARY = ('import msvcrt; msvcrt.setmode(sys.stdout.fileno(), '
'os.O_BINARY);')
else:
@@ -314,7 +312,7 @@
self._assert_python, pre_args,
executable=NONEXISTING_CMD[0])
- @unittest.skipIf(mswindows, "executable argument replaces shell")
+ @unittest.skipIf(support.MS_WINDOWS, "executable argument replaces shell")
def test_executable_replaces_shell(self):
# Check that the executable argument replaces the default shell
# when shell=True.
@@ -363,7 +361,7 @@
temp_dir = self._normalize_cwd(temp_dir)
self._assert_cwd(temp_dir, sys.executable, cwd=FakePath(temp_dir))
- @unittest.skipIf(mswindows, "pending resolution of issue #15533")
+ @unittest.skipIf(support.MS_WINDOWS, "pending resolution of issue #15533")
def test_cwd_with_relative_arg(self):
# Check that Popen looks for args[0] relative to cwd if args[0]
# is relative.
@@ -379,7 +377,7 @@
python_dir = self._normalize_cwd(python_dir)
self._assert_cwd(python_dir, rel_python, cwd=python_dir)
- @unittest.skipIf(mswindows, "pending resolution of issue #15533")
+ @unittest.skipIf(support.MS_WINDOWS, "pending resolution of issue #15533")
def test_cwd_with_relative_executable(self):
# Check that Popen looks for executable relative to cwd if executable
# is relative (and that executable takes precedence over args[0]).
@@ -1008,7 +1006,7 @@
def test_no_leaking(self):
# Make sure we leak no resources
- if not mswindows:
+ if not support.MS_WINDOWS:
max_handles = 1026 # too much for most UNIX systems
else:
max_handles = 2050 # too much for (at least some) Windows setups
@@ -1244,7 +1242,7 @@
t = threading.Timer(0.2, kill_proc_timer_thread)
t.start()
- if mswindows:
+ if support.MS_WINDOWS:
expected_errorcode = 1
else:
# Should be -9 because of the proc.kill() from the thread.
@@ -1365,13 +1363,13 @@
fds_after_exception = os.listdir(fd_directory)
self.assertEqual(fds_before_popen, fds_after_exception)
- @unittest.skipIf(mswindows, "behavior currently not supported on Windows")
+ @unittest.skipIf(support.MS_WINDOWS, "behavior currently not supported on Windows")
def test_file_not_found_includes_filename(self):
with self.assertRaises(FileNotFoundError) as c:
subprocess.call(['/opt/nonexistent_binary', 'with', 'some', 'args'])
self.assertEqual(c.exception.filename, '/opt/nonexistent_binary')
- @unittest.skipIf(mswindows, "behavior currently not supported on Windows")
+ @unittest.skipIf(support.MS_WINDOWS, "behavior currently not supported on Windows")
def test_file_not_found_with_bad_cwd(self):
with self.assertRaises(FileNotFoundError) as c:
subprocess.Popen(['exit', '0'], cwd='/some/nonexistent/directory')
@@ -1505,7 +1503,7 @@
self.assertIn('capture_output', c.exception.args[0])
-@unittest.skipIf(mswindows, "POSIX specific tests")
+@unittest.skipIf(support.MS_WINDOWS, "POSIX specific tests")
class POSIXProcessTestCase(BaseTestCase):
def setUp(self):
@@ -2788,7 +2786,7 @@
self.assertEqual(returncode, -3)
-@unittest.skipUnless(mswindows, "Windows specific tests")
+@unittest.skipUnless(support.MS_WINDOWS, "Windows specific tests")
class Win32ProcessTestCase(BaseTestCase):
def test_startupinfo(self):
@@ -3093,7 +3091,7 @@
dir = tempfile.mkdtemp()
name = os.path.join(dir, "foo")
status, output = subprocess.getstatusoutput(
- ("type " if mswindows else "cat ") + name)
+ ("type " if support.MS_WINDOWS else "cat ") + name)
self.assertNotEqual(status, 0)
finally:
if dir is not None:
@@ -3127,7 +3125,7 @@
ProcessTestCase.tearDown(self)
-@unittest.skipUnless(mswindows, "Windows-specific tests")
+@unittest.skipUnless(support.MS_WINDOWS, "Windows-specific tests")
class CommandsWithSpaces (BaseTestCase):
def setUp(self):