diff options
author | Victor Stinner <vstinner@python.org> | 2023-10-06 01:26:14 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-06 01:26:14 (GMT) |
commit | e188534607761af1f8faba483ce0b1e8578c73e5 (patch) | |
tree | 7febcd397c9c48716fe1f459b9cc400f5cc67ca0 | |
parent | 67028f0c159d9d83528d1890d8e9543157efb8b7 (diff) | |
download | cpython-e188534607761af1f8faba483ce0b1e8578c73e5.zip cpython-e188534607761af1f8faba483ce0b1e8578c73e5.tar.gz cpython-e188534607761af1f8faba483ce0b1e8578c73e5.tar.bz2 |
[3.12] Add support.MS_WINDOWS constant (#110446) (#110452)
Add support.MS_WINDOWS constant (#110446)
(cherry picked from commit e0c44377935de3491b2cbe1e5f87f8b336fdc922)
-rw-r--r-- | Lib/test/_test_embed_set_config.py | 2 | ||||
-rw-r--r-- | Lib/test/pythoninfo.py | 13 | ||||
-rw-r--r-- | Lib/test/support/__init__.py | 4 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_subprocess.py | 5 | ||||
-rw-r--r-- | Lib/test/test_cppext/__init__.py | 3 | ||||
-rw-r--r-- | Lib/test/test_cppext/setup.py | 6 | ||||
-rw-r--r-- | Lib/test/test_embed.py | 7 | ||||
-rw-r--r-- | Lib/test/test_faulthandler.py | 4 | ||||
-rw-r--r-- | Lib/test/test_gdb/__init__.py | 3 | ||||
-rw-r--r-- | Lib/test/test_utf8_mode.py | 3 |
10 files changed, 27 insertions, 23 deletions
diff --git a/Lib/test/_test_embed_set_config.py b/Lib/test/_test_embed_set_config.py index 0c016b5..a2ddd13 100644 --- a/Lib/test/_test_embed_set_config.py +++ b/Lib/test/_test_embed_set_config.py @@ -9,9 +9,9 @@ import _testinternalcapi import os import sys import unittest +from test.support import MS_WINDOWS -MS_WINDOWS = (os.name == 'nt') MAX_HASH_SEED = 4294967295 class SetConfigTests(unittest.TestCase): diff --git a/Lib/test/pythoninfo.py b/Lib/test/pythoninfo.py index 1ec04de..c0b2112 100644 --- a/Lib/test/pythoninfo.py +++ b/Lib/test/pythoninfo.py @@ -704,6 +704,19 @@ def collect_test_support(info_add): attributes = ('IPV6_ENABLED',) copy_attributes(info_add, support, 'test_support.%s', attributes) + attributes = ( + 'MS_WINDOWS', + 'has_fork_support', + 'has_socket_support', + 'has_strftime_extensions', + 'has_subprocess_support', + 'is_android', + 'is_emscripten', + 'is_jython', + 'is_wasi', + ) + copy_attributes(info_add, support, 'support.%s', attributes) + call_func(info_add, 'test_support._is_gui_available', support, '_is_gui_available') call_func(info_add, 'test_support.python_is_optimized', support, 'python_is_optimized') diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index fb69d9f..2249574 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -46,7 +46,7 @@ __all__ = [ "check_disallow_instantiation", "check_sanitizer", "skip_if_sanitizer", "requires_limited_api", "requires_specialization", # sys - "is_jython", "is_android", "is_emscripten", "is_wasi", + "MS_WINDOWS", "is_jython", "is_android", "is_emscripten", "is_wasi", "check_impl_detail", "unix_shell", "setswitchinterval", # os "get_pagesize", @@ -509,6 +509,8 @@ def requires_legacy_unicode_capi(): return unittest.skipUnless(unicode_legacy_string, 'requires legacy Unicode C API') +MS_WINDOWS = (sys.platform == 'win32') + # Is not actually used in tests, but is kept for compatibility. is_jython = sys.platform.startswith('java') diff --git a/Lib/test/test_asyncio/test_subprocess.py b/Lib/test/test_asyncio/test_subprocess.py index dc5a48d..179c8cb 100644 --- a/Lib/test/test_asyncio/test_subprocess.py +++ b/Lib/test/test_asyncio/test_subprocess.py @@ -14,8 +14,7 @@ from test import support from test.support import os_helper -MS_WINDOWS = (sys.platform == 'win32') -if MS_WINDOWS: +if support.MS_WINDOWS: import msvcrt else: from asyncio import unix_events @@ -283,7 +282,7 @@ class SubprocessMixin: rfd, wfd = os.pipe() self.addCleanup(os.close, rfd) self.addCleanup(os.close, wfd) - if MS_WINDOWS: + if support.MS_WINDOWS: handle = msvcrt.get_osfhandle(rfd) os.set_handle_inheritable(handle, True) code = textwrap.dedent(f''' diff --git a/Lib/test/test_cppext/__init__.py b/Lib/test/test_cppext/__init__.py index a322f41..f02a823 100644 --- a/Lib/test/test_cppext/__init__.py +++ b/Lib/test/test_cppext/__init__.py @@ -10,7 +10,6 @@ from test import support from test.support import os_helper -MS_WINDOWS = (sys.platform == 'win32') SOURCE = os.path.join(os.path.dirname(__file__), 'extension.cpp') SETUP = os.path.join(os.path.dirname(__file__), 'setup.py') @@ -27,7 +26,7 @@ class TestCPPExt(unittest.TestCase): # With MSVC, the linker fails with: cannot open file 'python311.lib' # https://github.com/python/cpython/pull/32175#issuecomment-1111175897 - @unittest.skipIf(MS_WINDOWS, 'test fails on Windows') + @unittest.skipIf(support.MS_WINDOWS, 'test fails on Windows') # Building and running an extension in clang sanitizing mode is not # straightforward @unittest.skipIf( diff --git a/Lib/test/test_cppext/setup.py b/Lib/test/test_cppext/setup.py index 976633b..c7ba1ef 100644 --- a/Lib/test/test_cppext/setup.py +++ b/Lib/test/test_cppext/setup.py @@ -4,15 +4,13 @@ import os import shlex import sys import sysconfig +from test import support from setuptools import setup, Extension -MS_WINDOWS = (sys.platform == 'win32') - - SOURCE = 'extension.cpp' -if not MS_WINDOWS: +if not support.MS_WINDOWS: # C++ compiler flags for GCC and clang CPPFLAGS = [ # gh-91321: The purpose of _testcppext extension is to check that building diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index 582392e..24617ab 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -1,8 +1,6 @@ # Run the tests in Programs/_testembed.c (tests for the CPython embedding APIs) from test import support -from test.support import import_helper -from test.support import os_helper -from test.support import requires_specialization +from test.support import import_helper, os_helper, MS_WINDOWS import unittest from collections import namedtuple @@ -21,7 +19,6 @@ import textwrap if not support.has_subprocess_support: raise unittest.SkipTest("test module requires subprocess") -MS_WINDOWS = (os.name == 'nt') MACOS = (sys.platform == 'darwin') PYMEM_ALLOCATOR_NOT_SET = 0 PYMEM_ALLOCATOR_DEBUG = 2 @@ -347,7 +344,7 @@ class EmbeddingTests(EmbeddingTestsMixin, unittest.TestCase): out, err = self.run_embedded_interpreter("test_repeated_simple_init") self.assertEqual(out, 'Finalized\n' * INIT_LOOPS) - @requires_specialization + @support.requires_specialization def test_specialized_static_code_gets_unspecialized_at_Py_FINALIZE(self): # https://github.com/python/cpython/issues/92031 diff --git a/Lib/test/test_faulthandler.py b/Lib/test/test_faulthandler.py index cfc7ce5..67ebc554 100644 --- a/Lib/test/test_faulthandler.py +++ b/Lib/test/test_faulthandler.py @@ -7,8 +7,7 @@ import signal import subprocess import sys from test import support -from test.support import os_helper -from test.support import script_helper, is_android +from test.support import os_helper, script_helper, is_android, MS_WINDOWS from test.support import skip_if_sanitizer import tempfile import unittest @@ -23,7 +22,6 @@ if not support.has_subprocess_support: raise unittest.SkipTest("test module requires subprocess") TIMEOUT = 0.5 -MS_WINDOWS = (os.name == 'nt') def expected_traceback(lineno1, lineno2, header, min_count=1): diff --git a/Lib/test/test_gdb/__init__.py b/Lib/test/test_gdb/__init__.py index d74075e..9955773 100644 --- a/Lib/test/test_gdb/__init__.py +++ b/Lib/test/test_gdb/__init__.py @@ -9,8 +9,7 @@ import unittest from test import support -MS_WINDOWS = (os.name == 'nt') -if MS_WINDOWS: +if support.MS_WINDOWS: # On Windows, Python is usually built by MSVC. Passing /p:DebugSymbols=true # option to MSBuild produces PDB debug symbols, but gdb doesn't support PDB # debug symbol files. diff --git a/Lib/test/test_utf8_mode.py b/Lib/test/test_utf8_mode.py index ec29ba6..f668810 100644 --- a/Lib/test/test_utf8_mode.py +++ b/Lib/test/test_utf8_mode.py @@ -9,10 +9,9 @@ import textwrap import unittest from test import support from test.support.script_helper import assert_python_ok, assert_python_failure -from test.support import os_helper +from test.support import os_helper, MS_WINDOWS -MS_WINDOWS = (sys.platform == 'win32') POSIX_LOCALES = ('C', 'POSIX') VXWORKS = (sys.platform == "vxworks") |