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
This commit is contained in:
Victor Stinner 2018-06-22 19:25:44 +02:00 committed by GitHub
parent 209abf7469
commit 8fbbdf0c31
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 95 additions and 91 deletions

View file

@ -35,13 +35,11 @@ except ImportError:
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 @@ class ProcessTestCase(BaseTestCase):
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 @@ class ProcessTestCase(BaseTestCase):
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 @@ class ProcessTestCase(BaseTestCase):
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 @@ class ProcessTestCase(BaseTestCase):
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 @@ class ProcessTestCase(BaseTestCase):
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 @@ class ProcessTestCase(BaseTestCase):
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 @@ class RunFuncTestCase(BaseTestCase):
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 @@ class POSIXProcessTestCase(BaseTestCase):
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 @@ class MiscTests(unittest.TestCase):
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 @@ class ProcessTestCaseNoPoll(ProcessTestCase):
ProcessTestCase.tearDown(self)
@unittest.skipUnless(mswindows, "Windows-specific tests")
@unittest.skipUnless(support.MS_WINDOWS, "Windows-specific tests")
class CommandsWithSpaces (BaseTestCase):
def setUp(self):