From 68a0bc030bc1ae2aedb982bfb2147b60dff46d03 Mon Sep 17 00:00:00 2001 From: Shahar Naveh <50263213+ShaharNaveh@users.noreply.github.com> Date: Sat, 9 May 2026 18:29:05 +0300 Subject: [PATCH] Update `test_isinstance.py` to 3.14.4 (#7806) --- Lib/test/test_isinstance.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_isinstance.py b/Lib/test/test_isinstance.py index 95a119ba6..d97535ba4 100644 --- a/Lib/test/test_isinstance.py +++ b/Lib/test/test_isinstance.py @@ -263,17 +263,19 @@ class TestIsInstanceIsSubclass(unittest.TestCase): self.assertEqual(True, issubclass(int, (int, (float, int)))) self.assertEqual(True, issubclass(str, (str, (Child, str)))) + @support.skip_wasi_stack_overflow() + @support.skip_emscripten_stack_overflow() def test_subclass_recursion_limit(self): # make sure that issubclass raises RecursionError before the C stack is # blown - with support.infinite_recursion(): - self.assertRaises(RecursionError, blowstack, issubclass, str, str) + self.assertRaises(RecursionError, blowstack, issubclass, str, str) + @support.skip_wasi_stack_overflow() + @support.skip_emscripten_stack_overflow() def test_isinstance_recursion_limit(self): # make sure that issubclass raises RecursionError before the C stack is # blown - with support.infinite_recursion(): - self.assertRaises(RecursionError, blowstack, isinstance, '', str) + self.assertRaises(RecursionError, blowstack, isinstance, '', str) def test_subclass_with_union(self): self.assertTrue(issubclass(int, int | float | int)) @@ -315,6 +317,9 @@ class TestIsInstanceIsSubclass(unittest.TestCase): self.assertRaises(RecursionError, issubclass, int, X()) self.assertRaises(RecursionError, isinstance, 1, X()) + @support.skip_if_unlimited_stack_size + @support.skip_emscripten_stack_overflow() + @support.skip_wasi_stack_overflow() def test_infinite_recursion_via_bases_tuple(self): """Regression test for bpo-30570.""" class Failure(object): @@ -324,6 +329,9 @@ class TestIsInstanceIsSubclass(unittest.TestCase): with self.assertRaises(RecursionError): issubclass(Failure(), int) + @support.skip_if_unlimited_stack_size + @support.skip_emscripten_stack_overflow() + @support.skip_wasi_stack_overflow() def test_infinite_cycle_in_bases(self): """Regression test for bpo-30570.""" class X: @@ -352,8 +360,9 @@ def blowstack(fxn, arg, compare_to): # Make sure that calling isinstance with a deeply nested tuple for its # argument will raise RecursionError eventually. tuple_arg = (compare_to,) - for cnt in range(support.exceeds_recursion_limit()): - tuple_arg = (tuple_arg,) + while True: + for _ in range(100): + tuple_arg = (tuple_arg,) fxn(arg, tuple_arg)