From 0f6f74e16def47c4dc144d5e251e3c6e5b5f1e2e Mon Sep 17 00:00:00 2001 From: "Erlend E. Aasland" Date: Mon, 4 Mar 2024 14:35:06 +0100 Subject: [PATCH] Skip more tests - Lib/test/support/__init__.py - Lib/test/test_audit.py - Lib/test/test_gdb/test_misc.py - Lib/test/test_inspect/test_inspect.py - Lib/test/test_pydoc/test_pydoc.py --- Lib/test/support/__init__.py | 1 + Lib/test/test_audit.py | 2 ++ Lib/test/test_gdb/test_misc.py | 6 +++++- Lib/test/test_inspect/test_inspect.py | 12 ++++++++++-- Lib/test/test_pydoc/test_pydoc.py | 6 ++++++ 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 14e3766a34377b..4ca42448271687 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -1698,6 +1698,7 @@ def patch_list(orig): orig[:] = saved +@requires_limited_api def run_in_subinterp(code): """ Run code in a subinterpreter. Raise unittest.SkipTest if the tracemalloc diff --git a/Lib/test/test_audit.py b/Lib/test/test_audit.py index cd0a4e2264865d..30d9ce06fe1b6a 100644 --- a/Lib/test/test_audit.py +++ b/Lib/test/test_audit.py @@ -7,6 +7,7 @@ from test import support from test.support import import_helper from test.support import os_helper +from test.support import requires_limited_api if not hasattr(sys, "addaudithook") or not hasattr(sys, "audit"): @@ -88,6 +89,7 @@ def test_excepthook(self): [("sys.excepthook", " ", "RuntimeError('fatal-error')")], events ) + @requires_limited_api def test_unraisablehook(self): returncode, events, stderr = self.run_python("test_unraisablehook") if returncode: diff --git a/Lib/test/test_gdb/test_misc.py b/Lib/test/test_gdb/test_misc.py index 1047f4867c1d03..92c5447ece0777 100644 --- a/Lib/test/test_gdb/test_misc.py +++ b/Lib/test/test_gdb/test_misc.py @@ -1,6 +1,6 @@ import re import unittest -from test.support import python_is_optimized +from test.support import python_is_optimized, requires_limited_api from .util import run_gdb, setup_module, DebuggerTests, SAMPLE_SCRIPT @@ -85,6 +85,7 @@ def baz(*args): class StackNavigationTests(DebuggerTests): + @requires_limited_api @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands") @unittest.skipIf(python_is_optimized(), "Python was compiled with optimizations") @@ -114,6 +115,7 @@ def test_up_at_top(self): self.assertEndsWith(bt, 'Unable to find an older python frame\n') + @requires_limited_api @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands") @unittest.skipIf(python_is_optimized(), "Python was compiled with optimizations") @@ -129,6 +131,7 @@ def test_up_then_down(self): $''') class PyPrintTests(DebuggerTests): + @requires_limited_api @unittest.skipIf(python_is_optimized(), "Python was compiled with optimizations") def test_basic_command(self): @@ -138,6 +141,7 @@ def test_basic_command(self): self.assertMultilineMatches(bt, r".*\nlocal 'args' = \(1, 2, 3\)\n.*") + @requires_limited_api @unittest.skipIf(python_is_optimized(), "Python was compiled with optimizations") @unittest.skipUnless(HAS_PYUP_PYDOWN, "test requires py-up/py-down commands") diff --git a/Lib/test/test_inspect/test_inspect.py b/Lib/test/test_inspect/test_inspect.py index 52cf68b93b85fa..c36d228112c587 100644 --- a/Lib/test/test_inspect/test_inspect.py +++ b/Lib/test/test_inspect/test_inspect.py @@ -32,7 +32,7 @@ except ImportError: ThreadPoolExecutor = None -from test.support import cpython_only +from test.support import cpython_only, requires_limited_api from test.support import MISSING_C_DOCSTRINGS, ALWAYS_EQ from test.support.import_helper import DirsOnSysPath, ready_to_import from test.support.os_helper import TESTFN @@ -668,7 +668,10 @@ def test_cleandoc(self): @cpython_only def test_c_cleandoc(self): - import _testinternalcapi + try: + import _testinternalcapi + except ImportError: + return unittest.skip("requires _testinternalcapi") func = _testinternalcapi.compiler_cleandoc for i, (input, expected) in enumerate(self.cleandoc_testdata): with self.subTest(i=i): @@ -1200,6 +1203,7 @@ def test_getfullargspec_builtin_methods(self): @cpython_only @unittest.skipIf(MISSING_C_DOCSTRINGS, "Signature information for builtins requires docstrings") + @requires_limited_api def test_getfullargspec_builtin_func(self): import _testcapi builtin = _testcapi.docstring_with_signature_with_defaults @@ -1209,6 +1213,7 @@ def test_getfullargspec_builtin_func(self): @cpython_only @unittest.skipIf(MISSING_C_DOCSTRINGS, "Signature information for builtins requires docstrings") + @requires_limited_api def test_getfullargspec_builtin_func_no_signature(self): import _testcapi builtin = _testcapi.docstring_no_signature @@ -2870,6 +2875,7 @@ def test_staticmethod(*args): # NOQA @cpython_only @unittest.skipIf(MISSING_C_DOCSTRINGS, "Signature information for builtins requires docstrings") + @requires_limited_api def test_signature_on_builtins(self): import _testcapi @@ -2951,6 +2957,7 @@ class ThisWorksNow: @cpython_only @unittest.skipIf(MISSING_C_DOCSTRINGS, "Signature information for builtins requires docstrings") + @requires_limited_api def test_signature_on_decorated_builtins(self): import _testcapi func = _testcapi.docstring_with_signature_with_defaults @@ -2972,6 +2979,7 @@ def wrapper_like(*args, **kwargs) -> int: pass inspect.signature(wrapper_like)) @cpython_only + @requires_limited_api def test_signature_on_builtins_no_signature(self): import _testcapi with self.assertRaisesRegex(ValueError, diff --git a/Lib/test/test_pydoc/test_pydoc.py b/Lib/test/test_pydoc/test_pydoc.py index 9d40234ed01697..d2bacd86f02bae 100644 --- a/Lib/test/test_pydoc/test_pydoc.py +++ b/Lib/test/test_pydoc/test_pydoc.py @@ -1371,6 +1371,7 @@ def test_bound_builtin_classmethod_o(self): @support.cpython_only @requires_docstrings + @support.requires_limited_api def test_module_level_callable_unrepresentable_default(self): import _testcapi builtin = _testcapi.func_with_unrepresentable_signature @@ -1379,6 +1380,7 @@ def test_module_level_callable_unrepresentable_default(self): @support.cpython_only @requires_docstrings + @support.requires_limited_api def test_builtin_staticmethod_unrepresentable_default(self): self.assertEqual(self._get_summary_line(str.maketrans), "maketrans(x, y=, z=, /)") @@ -1389,6 +1391,7 @@ def test_builtin_staticmethod_unrepresentable_default(self): @support.cpython_only @requires_docstrings + @support.requires_limited_api def test_unbound_builtin_method_unrepresentable_default(self): self.assertEqual(self._get_summary_line(dict.pop), "pop(self, key, default=, /) " @@ -1401,6 +1404,7 @@ def test_unbound_builtin_method_unrepresentable_default(self): @support.cpython_only @requires_docstrings + @support.requires_limited_api def test_bound_builtin_method_unrepresentable_default(self): self.assertEqual(self._get_summary_line({}.pop), "pop(key, default=, /) " @@ -1413,6 +1417,7 @@ def test_bound_builtin_method_unrepresentable_default(self): @support.cpython_only @requires_docstrings + @support.requires_limited_api def test_unbound_builtin_classmethod_unrepresentable_default(self): import _testcapi cls = _testcapi.DocStringUnrepresentableSignatureTest @@ -1423,6 +1428,7 @@ def test_unbound_builtin_classmethod_unrepresentable_default(self): @support.cpython_only @requires_docstrings + @support.requires_limited_api def test_bound_builtin_classmethod_unrepresentable_default(self): import _testcapi cls = _testcapi.DocStringUnrepresentableSignatureTest