summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_descr.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_descr.py')
-rw-r--r--Lib/test/test_descr.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 378ff52..48d43d7 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -4726,6 +4726,33 @@ order (MRO) for bases """
with self.assertRaises(TypeError):
str.__add__(fake_str, "abc")
+ def test_specialized_method_calls_check_types(self):
+ # https://github.com/python/cpython/issues/92063
+ class Thing:
+ pass
+ thing = Thing()
+ for i in range(20):
+ with self.assertRaises(TypeError):
+ # PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS
+ list.sort(thing)
+ for i in range(20):
+ with self.assertRaises(TypeError):
+ # PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS
+ str.split(thing)
+ for i in range(20):
+ with self.assertRaises(TypeError):
+ # PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS
+ str.upper(thing)
+ for i in range(20):
+ with self.assertRaises(TypeError):
+ # PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST
+ str.strip(thing)
+ from collections import deque
+ for i in range(20):
+ with self.assertRaises(TypeError):
+ # PRECALL_NO_KW_METHOD_DESCRIPTOR_O
+ deque.append(thing, thing)
+
def test_repr_as_str(self):
# Issue #11603: crash or infinite loop when rebinding __str__ as
# __repr__.