Skip to content

Commit 2b1b7ca

Browse files
[3.14] gh-131151: Add tests for exceptions raised by descriptors of comparison methods. (GH-159258) (#160090)
(cherry picked from commit c1e20aa) Co-authored-by: Vasiliy Kiryanov <vasiliy.kiryanov@gmail.com>
1 parent a4d932c commit 2b1b7ca

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

‎Lib/test/test_descr.py‎

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2149,10 +2149,22 @@ def some_number(self_, key):
21492149
def swallow(*args): pass
21502150
def format_impl(self, spec):
21512151
return "hello"
2152-
2153-
# It would be nice to have every special method tested here, but I'm
2154-
# only listing the ones I can remember outside of typeobject.c, since it
2155-
# does it right.
2152+
def do_eq(obj):
2153+
return obj == 1
2154+
def do_ne(obj):
2155+
return obj != 1
2156+
def do_lt(obj):
2157+
return obj < 1
2158+
def do_le(obj):
2159+
return obj <= 1
2160+
def do_gt(obj):
2161+
return obj > 1
2162+
def do_ge(obj):
2163+
return obj >= 1
2164+
2165+
# It would be nice to have every special method tested here.
2166+
# gh-131151: the rich comparison operators used to clear any exception
2167+
# raised by a descriptor's __get__.
21562168
specials = [
21572169
("__bytes__", bytes, hello, set(), {}),
21582170
("__reversed__", reversed, empty_seq, set(), {}),
@@ -2173,6 +2185,12 @@ def format_impl(self, spec):
21732185
("__ceil__", math.ceil, zero, set(), {}),
21742186
("__dir__", dir, empty_seq, set(), {}),
21752187
("__round__", round, zero, set(), {}),
2188+
("__eq__", do_eq, return_true, set(), {}),
2189+
("__ne__", do_ne, return_true, set(), {}),
2190+
("__lt__", do_lt, return_true, set(), {}),
2191+
("__le__", do_le, return_true, set(), {}),
2192+
("__gt__", do_gt, return_true, set(), {}),
2193+
("__ge__", do_ge, return_true, set(), {}),
21762194
]
21772195

21782196
class Checker(object):

0 commit comments

Comments
 (0)