]> granicus.if.org Git - python/commitdiff
Revert "bpo-33671: Add support.MS_WINDOWS and support.MACOS (GH-7800)" (GH-7919)
authorVictor Stinner <vstinner@redhat.com>
Tue, 26 Jun 2018 00:11:06 +0000 (02:11 +0200)
committerGitHub <noreply@github.com>
Tue, 26 Jun 2018 00:11:06 +0000 (02:11 +0200)
This reverts commit 8fbbdf0c3107c3052659e166f73990b466eacbb0.

16 files changed:
Lib/test/_test_multiprocessing.py
Lib/test/support/__init__.py
Lib/test/test_c_locale_coercion.py
Lib/test/test_cmd_line.py
Lib/test/test_codeop.py
Lib/test/test_faulthandler.py
Lib/test/test_import/__init__.py
Lib/test/test_io.py
Lib/test/test_largefile.py
Lib/test/test_locale.py
Lib/test/test_platform.py
Lib/test/test_shutil.py
Lib/test/test_socket.py
Lib/test/test_strptime.py
Lib/test/test_subprocess.py
Lib/test/test_utf8_mode.py

index b202aa20890839aba3914f369d34881fc4c3ed2f..31eadd24d359288bbaf44afff46d4bc652670c1b 100644 (file)
@@ -103,6 +103,8 @@ else:
 HAVE_GETVALUE = not getattr(_multiprocessing,
                             'HAVE_BROKEN_SEM_GETVALUE', False)
 
+WIN32 = (sys.platform == "win32")
+
 from multiprocessing.connection import wait
 
 def wait_for_handle(handle, timeout):
@@ -3804,7 +3806,7 @@ class _TestPollEintr(BaseTestCase):
 
 class TestInvalidHandle(unittest.TestCase):
 
-    @unittest.skipIf(support.MS_WINDOWS, "skipped on Windows")
+    @unittest.skipIf(WIN32, "skipped on Windows")
     def test_invalid_handles(self):
         conn = multiprocessing.connection.Connection(44977608)
         # check that poll() doesn't crash
@@ -4132,12 +4134,12 @@ class TestWait(unittest.TestCase):
 
 class TestInvalidFamily(unittest.TestCase):
 
-    @unittest.skipIf(support.MS_WINDOWS, "skipped on Windows")
+    @unittest.skipIf(WIN32, "skipped on Windows")
     def test_invalid_family(self):
         with self.assertRaises(ValueError):
             multiprocessing.connection.Listener(r'\\.\test')
 
-    @unittest.skipUnless(support.MS_WINDOWS, "skipped on non-Windows platforms")
+    @unittest.skipUnless(WIN32, "skipped on non-Windows platforms")
     def test_invalid_family_win32(self):
         with self.assertRaises(ValueError):
             multiprocessing.connection.Listener('/var/test.pipe')
@@ -4263,7 +4265,7 @@ class TestForkAwareThreadLock(unittest.TestCase):
 class TestCloseFds(unittest.TestCase):
 
     def get_high_socket_fd(self):
-        if support.MS_WINDOWS:
+        if WIN32:
             # The child process will not have any socket handles, so
             # calling socket.fromfd() should produce WSAENOTSOCK even
             # if there is a handle of the same number.
@@ -4281,7 +4283,7 @@ class TestCloseFds(unittest.TestCase):
             return fd
 
     def close(self, fd):
-        if support.MS_WINDOWS:
+        if WIN32:
             socket.socket(socket.AF_INET, socket.SOCK_STREAM, fileno=fd).close()
         else:
             os.close(fd)
index b60630a6460ccd13e52a6f18dca6d84c7368cb4b..d8dabd435895643eb86e67cae7b6c2eefbf2148e 100644 (file)
@@ -90,8 +90,8 @@ __all__ = [
     "anticipate_failure", "load_package_tests", "detect_api_mismatch",
     "check__all__", "skip_unless_bind_unix_socket",
     # sys
-    "JYTHON", "ANDROID", "check_impl_detail", "unix_shell",
-    "setswitchinterval", "MS_WINDOWS", "MACOS",
+    "is_jython", "is_android", "check_impl_detail", "unix_shell",
+    "setswitchinterval",
     # network
     "HOST", "IPV6_ENABLED", "find_unused_port", "bind_port", "open_urlresource",
     "bind_unix_socket",
@@ -108,21 +108,6 @@ __all__ = [
     "run_with_tz", "PGO", "missing_compiler_executable", "fd_count",
     ]
 
-
-# True if Python is running on Microsoft Windows.
-MS_WINDOWS = (sys.platform == 'win32')
-
-# True if Python is running on Apple macOS.
-MACOS = (sys.platform == 'darwin')
-
-# True if Python runs on Jython
-# (Python implemented in Java running in a Java VM)
-JYTHON = sys.platform.startswith('java')
-
-# True if Python runs on Android
-ANDROID = hasattr(sys, 'getandroidapilevel')
-
-
 class Error(Exception):
     """Base class for regression test exceptions."""
 
@@ -499,7 +484,7 @@ def _is_gui_available():
             raise ctypes.WinError()
         if not bool(uof.dwFlags & WSF_VISIBLE):
             reason = "gui not available (WSF_VISIBLE flag not set)"
-    elif MACOS:
+    elif sys.platform == 'darwin':
         # The Aqua Tk implementations on OS X can abort the process if
         # being called in an environment where a window server connection
         # cannot be made, for instance when invoked by a buildbot or ssh
@@ -615,7 +600,7 @@ def requires_mac_ver(*min_version):
     def decorator(func):
         @functools.wraps(func)
         def wrapper(*args, **kw):
-            if MACOS:
+            if sys.platform == 'darwin':
                 version_txt = platform.mac_ver()[0]
                 try:
                     version = tuple(map(int, version_txt.split('.')))
@@ -803,12 +788,14 @@ requires_bz2 = unittest.skipUnless(bz2, 'requires bz2')
 
 requires_lzma = unittest.skipUnless(lzma, 'requires lzma')
 
-if MS_WINDOWS:
-    unix_shell = None
-elif ANDROID:
-    unix_shell = '/system/bin/sh'
+is_jython = sys.platform.startswith('java')
+
+is_android = hasattr(sys, 'getandroidapilevel')
+
+if sys.platform != 'win32':
+    unix_shell = '/system/bin/sh' if is_android else '/bin/sh'
 else:
-    unix_shell = '/bin/sh'
+    unix_shell = None
 
 # Filename used for testing
 if os.name == 'java':
@@ -867,7 +854,7 @@ for character in (
 
 # TESTFN_UNICODE is a non-ascii filename
 TESTFN_UNICODE = TESTFN + "-\xe0\xf2\u0258\u0141\u011f"
-if MACOS:
+if sys.platform == 'darwin':
     # In Mac OS X's VFS API file names are, by definition, canonically
     # decomposed Unicode, encoded using UTF-8. See QA1173:
     # http://developer.apple.com/mac/library/qa/qa2001/qa1173.html
@@ -879,7 +866,7 @@ TESTFN_ENCODING = sys.getfilesystemencoding()
 # encoded by the filesystem encoding (in strict mode). It can be None if we
 # cannot generate such filename.
 TESTFN_UNENCODABLE = None
-if MS_WINDOWS:
+if os.name == 'nt':
     # skip win32s (0) or Windows 9x/ME (1)
     if sys.getwindowsversion().platform >= 2:
         # Different kinds of characters from various languages to minimize the
@@ -894,8 +881,8 @@ if MS_WINDOWS:
                   'Unicode filename tests may not be effective'
                   % (TESTFN_UNENCODABLE, TESTFN_ENCODING))
             TESTFN_UNENCODABLE = None
-# macOS denies unencodable filenames (invalid utf-8)
-elif not MACOS:
+# Mac OS X denies unencodable filenames (invalid utf-8)
+elif sys.platform != 'darwin':
     try:
         # ascii and utf-8 cannot encode the byte 0xff
         b'\xff'.decode(TESTFN_ENCODING)
@@ -1536,7 +1523,7 @@ def gc_collect():
     objects to disappear.
     """
     gc.collect()
-    if JYTHON:
+    if is_jython:
         time.sleep(0.1)
     gc.collect()
     gc.collect()
@@ -1995,7 +1982,7 @@ def _check_docstrings():
     """Just used to check if docstrings are enabled"""
 
 MISSING_C_DOCSTRINGS = (check_impl_detail() and
-                        not MS_WINDOWS and
+                        sys.platform != 'win32' and
                         not sysconfig.get_config_var('WITH_DOC_STRINGS'))
 
 HAVE_DOCSTRINGS = (_check_docstrings.__doc__ is not None and
@@ -2605,7 +2592,7 @@ class SuppressCrashReport:
                 except (ValueError, OSError):
                     pass
 
-            if MACOS:
+            if sys.platform == 'darwin':
                 # Check if the 'Crash Reporter' on OSX was configured
                 # in 'Developer' mode and warn that it will get triggered
                 # when it is.
@@ -2749,7 +2736,7 @@ def setswitchinterval(interval):
     # Setting a very low gil interval on the Android emulator causes python
     # to hang (issue #26939).
     minimum_interval = 1e-5
-    if ANDROID and interval < minimum_interval:
+    if is_android and interval < minimum_interval:
         global _is_android_emulator
         if _is_android_emulator is None:
             _is_android_emulator = (subprocess.check_output(
@@ -2795,7 +2782,7 @@ def fd_count():
             pass
 
     old_modes = None
-    if MS_WINDOWS:
+    if sys.platform == 'win32':
         # bpo-25306, bpo-31009: Call CrtSetReportMode() to not kill the process
         # on invalid file descriptor if Python is compiled in debug mode
         try:
index 9e68bf96ec7fa734cc4bd9541369288996e86c8c..1db293b9c37359be50c72e4b94f38823b2e9bfb5 100644 (file)
@@ -27,7 +27,7 @@ EXPECT_COERCION_IN_DEFAULT_LOCALE = True
 
 # Apply some platform dependent overrides
 if sys.platform.startswith("linux"):
-    if test.support.ANDROID:
+    if test.support.is_android:
         # Android defaults to using UTF-8 for all system interfaces
         EXPECTED_C_LOCALE_STREAM_ENCODING = "utf-8"
         EXPECTED_C_LOCALE_FS_ENCODING = "utf-8"
@@ -335,7 +335,7 @@ class LocaleCoercionTests(_LocaleHandlingTestCase):
             # locale environment variables are undefined or empty. When
             # this code path is run with environ['LC_ALL'] == 'C', then
             # LEGACY_LOCALE_WARNING is printed.
-            if (test.support.ANDROID and
+            if (test.support.is_android and
                     _expected_warnings == [CLI_COERCION_WARNING]):
                 _expected_warnings = None
             self._check_child_encoding_details(base_var_dict,
index f28a4b2a6969890b6605507b492ffa11352ba347..ce14a96c1407f388f426a1b70955992a2809e3ef 100644 (file)
@@ -187,8 +187,8 @@ class CmdLineTest(unittest.TestCase):
         if not stdout.startswith(pattern):
             raise AssertionError("%a doesn't start with %a" % (stdout, pattern))
 
-    @unittest.skipUnless((support.MACOS or support.ANDROID),
-                         'test specific to macOS and Android')
+    @unittest.skipUnless((sys.platform == 'darwin' or
+                support.is_android), 'test specific to Mac OS X and Android')
     def test_osx_android_utf8(self):
         def check_output(text):
             decoded = text.decode('utf-8', 'surrogateescape')
index 8d14ad35be8034a086d008f664eea42c25b79163..98da26fa5dab13a2e0c7a21f62eac97045e4b78e 100644 (file)
@@ -3,12 +3,12 @@
    Nick Mathewson
 """
 import unittest
-from test import support
+from test.support import is_jython
 
 from codeop import compile_command, PyCF_DONT_IMPLY_DEDENT
 import io
 
-if support.JYTHON:
+if is_jython:
     import sys
 
     def unify_callables(d):
@@ -21,7 +21,7 @@ class CodeopTests(unittest.TestCase):
 
     def assertValid(self, str, symbol='single'):
         '''succeed iff str is a valid piece of code'''
-        if support.JYTHON:
+        if is_jython:
             code = compile_command(str, "<input>", symbol)
             self.assertTrue(code)
             if symbol == "single":
@@ -60,7 +60,7 @@ class CodeopTests(unittest.TestCase):
         av = self.assertValid
 
         # special case
-        if not support.JYTHON:
+        if not is_jython:
             self.assertEqual(compile_command(""),
                              compile("pass", "<input>", 'single',
                                      PyCF_DONT_IMPLY_DEDENT))
index 4922b00e832820227846fe1401ca9a9f2e9ccc2f..d6dc4ba55d9b3e89a8602ac3d3beb34fccbe41d7 100644 (file)
@@ -6,7 +6,7 @@ import signal
 import subprocess
 import sys
 from test import support
-from test.support import script_helper
+from test.support import script_helper, is_android
 import tempfile
 import threading
 import unittest
@@ -18,6 +18,7 @@ except ImportError:
     _testcapi = None
 
 TIMEOUT = 0.5
+MS_WINDOWS = (os.name == 'nt')
 
 def expected_traceback(lineno1, lineno2, header, min_count=1):
     regex = header
@@ -30,7 +31,7 @@ def expected_traceback(lineno1, lineno2, header, min_count=1):
 
 def skip_segfault_on_android(test):
     # Issue #32138: Raising SIGSEGV on Android may not cause a crash.
-    return unittest.skipIf(support.ANDROID,
+    return unittest.skipIf(is_android,
                            'raising SIGSEGV on Android is unreliable')(test)
 
 @contextmanager
@@ -120,7 +121,7 @@ class FaultHandlerTests(unittest.TestCase):
     @unittest.skipIf(sys.platform.startswith('aix'),
                      "the first page of memory is a mapped read-only on AIX")
     def test_read_null(self):
-        if not support.MS_WINDOWS:
+        if not MS_WINDOWS:
             self.check_fatal_error("""
                 import faulthandler
                 faulthandler.enable()
@@ -731,7 +732,7 @@ class FaultHandlerTests(unittest.TestCase):
             with self.check_stderr_none():
                 faulthandler.register(signal.SIGUSR1)
 
-    @unittest.skipUnless(support.MS_WINDOWS, 'specific to Windows')
+    @unittest.skipUnless(MS_WINDOWS, 'specific to Windows')
     def test_raise_exception(self):
         for exc, name in (
             ('EXCEPTION_ACCESS_VIOLATION', 'access violation'),
@@ -746,7 +747,7 @@ class FaultHandlerTests(unittest.TestCase):
                 3,
                 name)
 
-    @unittest.skipUnless(support.MS_WINDOWS, 'specific to Windows')
+    @unittest.skipUnless(MS_WINDOWS, 'specific to Windows')
     def test_ignore_exception(self):
         for exc_code in (
             0xE06D7363,   # MSC exception ("Emsc")
@@ -762,7 +763,7 @@ class FaultHandlerTests(unittest.TestCase):
             self.assertEqual(output, [])
             self.assertEqual(exitcode, exc_code)
 
-    @unittest.skipUnless(support.MS_WINDOWS, 'specific to Windows')
+    @unittest.skipUnless(MS_WINDOWS, 'specific to Windows')
     def test_raise_nonfatal_exception(self):
         # These exceptions are not strictly errors. Letting
         # faulthandler display the traceback when they are
@@ -790,7 +791,7 @@ class FaultHandlerTests(unittest.TestCase):
             self.assertIn(exitcode,
                           (exc, exc & ~0x10000000))
 
-    @unittest.skipUnless(support.MS_WINDOWS, 'specific to Windows')
+    @unittest.skipUnless(MS_WINDOWS, 'specific to Windows')
     def test_disable_windows_exc_handler(self):
         code = dedent("""
             import faulthandler
index a917259dabe9b3e3971311075d8be238dcf4502b..fb9453ad0b39203b25fbb35868a8ee955c74c783 100644 (file)
@@ -20,7 +20,7 @@ import contextlib
 
 import test.support
 from test.support import (
-    EnvironmentVarGuard, TESTFN, check_warnings, forget, JYTHON,
+    EnvironmentVarGuard, TESTFN, check_warnings, forget, is_jython,
     make_legacy_pyc, rmtree, run_unittest, swap_attr, swap_item, temp_umask,
     unlink, unload, create_empty_file, cpython_only, TESTFN_UNENCODABLE,
     temp_dir, DirsOnSysPath)
@@ -148,7 +148,7 @@ class ImportTests(unittest.TestCase):
         def test_with_extension(ext):
             # The extension is normally ".py", perhaps ".pyw".
             source = TESTFN + ext
-            if JYTHON:
+            if is_jython:
                 pyc = TESTFN + "$py.class"
             else:
                 pyc = TESTFN + ".pyc"
index d84605ef7adfc264730307084be274b967a97297..286ae760e17fcbeafb9a1e2fe6733c6f79256995 100644 (file)
@@ -583,7 +583,7 @@ class IOTest(unittest.TestCase):
         # On Windows and Mac OSX this test consumes large resources; It takes
         # a long time to build the >2 GiB file and takes >2 GiB of disk space
         # therefore the resource must be enabled to run this test.
-        if support.MS_WINDOWS or support.MACOS:
+        if sys.platform[:3] == 'win' or sys.platform == 'darwin':
             support.requires(
                 'largefile',
                 'test requires %s bytes and a long time to run' % self.LARGE)
index 25b8ff01ed62e42721965918c342aab69e04f08f..21296ccafe541f8f548102fbb37d859c38344fc0 100644 (file)
@@ -5,7 +5,6 @@ import os
 import stat
 import sys
 import unittest
-from test import support
 from test.support import TESTFN, requires, unlink
 import io  # C implementation of io
 import _pyio as pyio # Python implementation of io
@@ -146,7 +145,7 @@ def setUpModule():
     # takes a long time to build the >2 GiB file and takes >2 GiB of disk
     # space therefore the resource must be enabled to run this test.
     # If not, nothing after this line stanza will be executed.
-    if support.MS_WINDOWS or support.MACOS:
+    if sys.platform[:3] == 'win' or sys.platform == 'darwin':
         requires('largefile',
                  'test requires %s bytes and a long time to run' % str(size))
     else:
index 11bf254e9774b14c1ff0a3f8b2457d05f3c5bb7b..e2c2178ae6cc30103549c8dfb601d32dcb5e1ac6 100644 (file)
@@ -1,10 +1,9 @@
-import codecs
+from test.support import verbose, is_android, check_warnings
+import unittest
 import locale
 import sys
-import unittest
+import codecs
 import warnings
-from test import support
-
 
 class BaseLocalizedTest(unittest.TestCase):
     #
@@ -13,7 +12,7 @@ class BaseLocalizedTest(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        if support.MACOS:
+        if sys.platform == 'darwin':
             import os
             tlocs = ("en_US.UTF-8", "en_US.ISO8859-1", "en_US")
             if int(os.uname().release.split('.')[0]) < 10:
@@ -45,7 +44,7 @@ class BaseLocalizedTest(unittest.TestCase):
         oldlocale = locale.setlocale(self.locale_type)
         self.addCleanup(locale.setlocale, self.locale_type, oldlocale)
         locale.setlocale(self.locale_type, self.enUS_locale)
-        if support.verbose:
+        if verbose:
             print("testing with %r..." % self.enUS_locale, end=' ', flush=True)
 
 
@@ -145,7 +144,7 @@ class BaseFormattingTest(object):
             func(format, value, **format_opts), out)
 
     def _test_format(self, format, value, out, **format_opts):
-        with support.check_warnings(('', DeprecationWarning)):
+        with check_warnings(('', DeprecationWarning)):
             self._test_formatfunc(format, value, out,
                 func=locale.format, **format_opts)
 
@@ -234,7 +233,7 @@ class TestFormatPatternArg(unittest.TestCase):
     # Test handling of pattern argument of format
 
     def test_onlyOnePattern(self):
-        with support.check_warnings(('', DeprecationWarning)):
+        with check_warnings(('', DeprecationWarning)):
             # Issue 2522: accept exactly one % pattern, and no extra chars.
             self.assertRaises(ValueError, locale.format, "%f\n", 'foo')
             self.assertRaises(ValueError, locale.format, "%f\r", 'foo')
@@ -366,7 +365,7 @@ class TestEnUSCollation(BaseLocalizedTest, TestCollation):
         enc = codecs.lookup(locale.getpreferredencoding(False) or 'ascii').name
         if enc not in ('utf-8', 'iso8859-1', 'cp1252'):
             raise unittest.SkipTest('encoding not suitable')
-        if enc != 'iso8859-1' and (support.MACOS or support.ANDROID or
+        if enc != 'iso8859-1' and (sys.platform == 'darwin' or is_android or
                                    sys.platform.startswith('freebsd')):
             raise unittest.SkipTest('wcscoll/wcsxfrm have known bugs')
         BaseLocalizedTest.setUp(self)
@@ -527,7 +526,7 @@ class TestMiscellaneous(unittest.TestCase):
             # Unsupported locale on this system
             self.skipTest('test needs Turkish locale')
         loc = locale.getlocale(locale.LC_CTYPE)
-        if support.verbose:
+        if verbose:
             print('testing with %a' % (loc,), end=' ', flush=True)
         locale.setlocale(locale.LC_CTYPE, loc)
         self.assertEqual(loc, locale.getlocale(locale.LC_CTYPE))
index dfae4a877db32e66beac7af93be69847855d3cbc..7e3e40114b476b87c56089997cb383d9129a2758 100644 (file)
@@ -270,7 +270,9 @@ class PlatformTest(unittest.TestCase):
         res = platform.libc_ver(executable)
 
     def test_popen(self):
-        if support.MS_WINDOWS:
+        mswindows = (sys.platform == "win32")
+
+        if mswindows:
             command = '"{}" -c "print(\'Hello\')"'.format(sys.executable)
         else:
             command = "'{}' -c 'print(\"Hello\")'".format(sys.executable)
@@ -282,7 +284,7 @@ class PlatformTest(unittest.TestCase):
                 self.assertEqual(hello, "Hello")
 
         data = 'plop'
-        if support.MS_WINDOWS:
+        if mswindows:
             command = '"{}" -c "import sys; data=sys.stdin.read(); exit(len(data))"'
         else:
             command = "'{}' -c 'import sys; data=sys.stdin.read(); exit(len(data))'"
index b3b3e66009e40eaff96f1db55e1e137ca634093e..7e0a3292e0f8a4697e59516d835c7b0ad4f96e33 100644 (file)
@@ -33,6 +33,7 @@ from test import support
 from test.support import TESTFN, FakePath
 
 TESTFN2 = TESTFN + "2"
+MACOS = sys.platform.startswith("darwin")
 try:
     import grp
     import pwd
@@ -1807,7 +1808,7 @@ class TestCopyFile(unittest.TestCase):
 
         self.assertRaises(OSError, shutil.copyfile, 'srcfile', 'destfile')
 
-    @unittest.skipIf(support.MACOS, "skipped on macOS")
+    @unittest.skipIf(MACOS, "skipped on macOS")
     def test_w_dest_open_fails(self):
 
         srcfile = self.Faux()
@@ -1827,7 +1828,7 @@ class TestCopyFile(unittest.TestCase):
         self.assertEqual(srcfile._exited_with[1].args,
                          ('Cannot open "destfile"',))
 
-    @unittest.skipIf(support.MACOS, "skipped on macOS")
+    @unittest.skipIf(MACOS, "skipped on macOS")
     def test_w_dest_close_fails(self):
 
         srcfile = self.Faux()
@@ -1850,7 +1851,7 @@ class TestCopyFile(unittest.TestCase):
         self.assertEqual(srcfile._exited_with[1].args,
                          ('Cannot close',))
 
-    @unittest.skipIf(support.MACOS, "skipped on macOS")
+    @unittest.skipIf(MACOS, "skipped on macOS")
     def test_w_source_close_fails(self):
 
         srcfile = self.Faux(True)
@@ -2184,7 +2185,7 @@ class TestZeroCopySendfile(_ZeroCopyFileTest, unittest.TestCase):
             shutil._HAS_SENDFILE = True
 
 
-@unittest.skipIf(not support.MACOS, 'macOS only')
+@unittest.skipIf(not MACOS, 'macOS only')
 class TestZeroCopyMACOS(_ZeroCopyFileTest, unittest.TestCase):
     PATCHPOINT = "posix._fcopyfile"
 
index 44966e450e18b974b7fa9a821a5981ebe4aa3f70..f377ebcb27b2bf23d362b612ffa7c8bbb2b64787 100644 (file)
@@ -1038,7 +1038,7 @@ class GeneralModuleTests(unittest.TestCase):
             eq(udpport, port)
         # Now make sure the lookup by port returns the same service name
         # Issue #26936: Android getservbyport() is broken.
-        if not support.ANDROID:
+        if not support.is_android:
             eq(socket.getservbyport(port2), service)
         eq(socket.getservbyport(port, 'tcp'), service)
         if udpport is not None:
index 3105c74677a4635be2fbf87536ac1b1bfaec2816..de2773f6aa2916ea7f733348090a01193a4387e9 100644 (file)
@@ -521,7 +521,7 @@ class CalculationTests(unittest.TestCase):
                         "Calculation of day of the week failed;"
                          "%s != %s" % (result.tm_wday, self.time_tuple.tm_wday))
 
-    if support.ANDROID:
+    if support.is_android:
         # Issue #26929: strftime() on Android incorrectly formats %V or %G for
         # the last or the first incomplete week in a year.
         _ymd_excluded = ((1905, 1, 1), (1906, 12, 31), (2008, 12, 29),
index 569e3e0aa559b259d325c261ddeb7be734e92a39..4b089f525c152a84c668487f70cca2889610d6a3 100644 (file)
@@ -35,11 +35,13 @@ 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 support.MS_WINDOWS:
+if mswindows:
     SETBINARY = ('import msvcrt; msvcrt.setmode(sys.stdout.fileno(), '
                                                 'os.O_BINARY);')
 else:
@@ -312,7 +314,7 @@ class ProcessTestCase(BaseTestCase):
                           self._assert_python, pre_args,
                           executable=NONEXISTING_CMD[0])
 
-    @unittest.skipIf(support.MS_WINDOWS, "executable argument replaces shell")
+    @unittest.skipIf(mswindows, "executable argument replaces shell")
     def test_executable_replaces_shell(self):
         # Check that the executable argument replaces the default shell
         # when shell=True.
@@ -361,7 +363,7 @@ class ProcessTestCase(BaseTestCase):
         temp_dir = self._normalize_cwd(temp_dir)
         self._assert_cwd(temp_dir, sys.executable, cwd=FakePath(temp_dir))
 
-    @unittest.skipIf(support.MS_WINDOWS, "pending resolution of issue #15533")
+    @unittest.skipIf(mswindows, "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.
@@ -377,7 +379,7 @@ class ProcessTestCase(BaseTestCase):
             python_dir = self._normalize_cwd(python_dir)
             self._assert_cwd(python_dir, rel_python, cwd=python_dir)
 
-    @unittest.skipIf(support.MS_WINDOWS, "pending resolution of issue #15533")
+    @unittest.skipIf(mswindows, "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]).
@@ -1006,7 +1008,7 @@ class ProcessTestCase(BaseTestCase):
 
     def test_no_leaking(self):
         # Make sure we leak no resources
-        if not support.MS_WINDOWS:
+        if not mswindows:
             max_handles = 1026 # too much for most UNIX systems
         else:
             max_handles = 2050 # too much for (at least some) Windows setups
@@ -1242,7 +1244,7 @@ class ProcessTestCase(BaseTestCase):
         t = threading.Timer(0.2, kill_proc_timer_thread)
         t.start()
 
-        if support.MS_WINDOWS:
+        if mswindows:
             expected_errorcode = 1
         else:
             # Should be -9 because of the proc.kill() from the thread.
@@ -1363,13 +1365,13 @@ class ProcessTestCase(BaseTestCase):
         fds_after_exception = os.listdir(fd_directory)
         self.assertEqual(fds_before_popen, fds_after_exception)
 
-    @unittest.skipIf(support.MS_WINDOWS, "behavior currently not supported on Windows")
+    @unittest.skipIf(mswindows, "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(support.MS_WINDOWS, "behavior currently not supported on Windows")
+    @unittest.skipIf(mswindows, "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')
@@ -1503,7 +1505,7 @@ class RunFuncTestCase(BaseTestCase):
         self.assertIn('capture_output', c.exception.args[0])
 
 
-@unittest.skipIf(support.MS_WINDOWS, "POSIX specific tests")
+@unittest.skipIf(mswindows, "POSIX specific tests")
 class POSIXProcessTestCase(BaseTestCase):
 
     def setUp(self):
@@ -2786,7 +2788,7 @@ class POSIXProcessTestCase(BaseTestCase):
         self.assertEqual(returncode, -3)
 
 
-@unittest.skipUnless(support.MS_WINDOWS, "Windows specific tests")
+@unittest.skipUnless(mswindows, "Windows specific tests")
 class Win32ProcessTestCase(BaseTestCase):
 
     def test_startupinfo(self):
@@ -3091,7 +3093,7 @@ class MiscTests(unittest.TestCase):
             dir = tempfile.mkdtemp()
             name = os.path.join(dir, "foo")
             status, output = subprocess.getstatusoutput(
-                ("type " if support.MS_WINDOWS else "cat ") + name)
+                ("type " if mswindows else "cat ") + name)
             self.assertNotEqual(status, 0)
         finally:
             if dir is not None:
@@ -3125,7 +3127,7 @@ class ProcessTestCaseNoPoll(ProcessTestCase):
         ProcessTestCase.tearDown(self)
 
 
-@unittest.skipUnless(support.MS_WINDOWS, "Windows-specific tests")
+@unittest.skipUnless(mswindows, "Windows-specific tests")
 class CommandsWithSpaces (BaseTestCase):
 
     def setUp(self):
index f2eb86e1c5e614cae75b8f52dbca0a5f8156f1cc..26e2e13ec5339facb09436faf3d0f5dd7e3c818e 100644 (file)
@@ -11,6 +11,9 @@ from test import support
 from test.support.script_helper import assert_python_ok, assert_python_failure
 
 
+MS_WINDOWS = (sys.platform == 'win32')
+
+
 class UTF8ModeTests(unittest.TestCase):
     DEFAULT_ENV = {
         'PYTHONUTF8': '',
@@ -32,7 +35,7 @@ class UTF8ModeTests(unittest.TestCase):
             out = out[1]
         return out.decode().rstrip("\n\r")
 
-    @unittest.skipIf(support.MS_WINDOWS, 'Windows has no POSIX locale')
+    @unittest.skipIf(MS_WINDOWS, 'Windows has no POSIX locale')
     def test_posix_locale(self):
         code = 'import sys; print(sys.flags.utf8_mode)'
 
@@ -52,7 +55,7 @@ class UTF8ModeTests(unittest.TestCase):
         out = self.get_output('-X', 'utf8=0', '-c', code)
         self.assertEqual(out, '0')
 
-        if support.MS_WINDOWS:
+        if MS_WINDOWS:
             # PYTHONLEGACYWINDOWSFSENCODING disables the UTF-8 Mode
             # and has the priority over -X utf8
             out = self.get_output('-X', 'utf8', '-c', code,
@@ -72,7 +75,7 @@ class UTF8ModeTests(unittest.TestCase):
         out = self.get_output('-X', 'utf8=0', '-c', code, PYTHONUTF8='1')
         self.assertEqual(out, '0')
 
-        if support.MS_WINDOWS:
+        if MS_WINDOWS:
             # PYTHONLEGACYWINDOWSFSENCODING disables the UTF-8 mode
             # and has the priority over PYTHONUTF8
             out = self.get_output('-X', 'utf8', '-c', code, PYTHONUTF8='1',
@@ -98,7 +101,7 @@ class UTF8ModeTests(unittest.TestCase):
                                  sys.getfilesystemencodeerrors()))
         ''')
 
-        if support.MS_WINDOWS:
+        if MS_WINDOWS:
             expected = 'utf-8/surrogatepass'
         else:
             expected = 'utf-8/surrogateescape'
@@ -106,7 +109,7 @@ class UTF8ModeTests(unittest.TestCase):
         out = self.get_output('-X', 'utf8', '-c', code)
         self.assertEqual(out, expected)
 
-        if support.MS_WINDOWS:
+        if MS_WINDOWS:
             # PYTHONLEGACYWINDOWSFSENCODING disables the UTF-8 mode
             # and has the priority over -X utf8 and PYTHONUTF8
             out = self.get_output('-X', 'utf8', '-c', code,
@@ -201,7 +204,7 @@ class UTF8ModeTests(unittest.TestCase):
         out = self.get_output('-X', 'utf8', '-c', code, LC_ALL='C')
         self.assertEqual(out, 'UTF-8 UTF-8')
 
-    @unittest.skipIf(support.MS_WINDOWS, 'test specific to Unix')
+    @unittest.skipIf(MS_WINDOWS, 'test specific to Unix')
     def test_cmd_line(self):
         arg = 'h\xe9\u20ac'.encode('utf-8')
         arg_utf8 = arg.decode('utf-8')
@@ -214,7 +217,7 @@ class UTF8ModeTests(unittest.TestCase):
             self.assertEqual(args, ascii(expected), out)
 
         check('utf8', [arg_utf8])
-        if support.MACOS or support.ANDROID:
+        if sys.platform == 'darwin' or support.is_android:
             c_arg = arg_utf8
         else:
             c_arg = arg_ascii