mirror of https://github.com/python/cpython
Add test for misbehaving rich comparisons (always returning 0) --
these fall back to __cmp__.
This commit is contained in:
parent
c4a6e8b65a
commit
9710bd5deb
|
@ -1,6 +1,6 @@
|
||||||
# Tests for rich comparisons
|
# Tests for rich comparisons
|
||||||
|
|
||||||
from test_support import TestFailed
|
from test_support import TestFailed, verify
|
||||||
|
|
||||||
class Number:
|
class Number:
|
||||||
|
|
||||||
|
@ -167,11 +167,33 @@ def tabulate(c1=Number, c2=Number):
|
||||||
print
|
print
|
||||||
print '*' * 50
|
print '*' * 50
|
||||||
|
|
||||||
|
def misbehavin():
|
||||||
|
class Misb:
|
||||||
|
def __lt__(self, other): return 0
|
||||||
|
def __gt__(self, other): return 0
|
||||||
|
def __eq__(self, other): return 0
|
||||||
|
def __le__(self, other): raise TestFailed, "This shouldn't happen"
|
||||||
|
def __ge__(self, other): raise TestFailed, "This shouldn't happen"
|
||||||
|
def __ne__(self, other): raise TestFailed, "This shouldn't happen"
|
||||||
|
def __cmp__(self, other): raise RuntimeError, "expected"
|
||||||
|
a = Misb()
|
||||||
|
b = Misb()
|
||||||
|
verify((a<b) == 0)
|
||||||
|
verify((a==b) == 0)
|
||||||
|
verify((a>b) == 0)
|
||||||
|
try:
|
||||||
|
print cmp(a, b)
|
||||||
|
except RuntimeError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
raise TestFailed, "cmp(Misb(), Misb()) didn't raise RuntimeError"
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
basic()
|
basic()
|
||||||
tabulate()
|
tabulate()
|
||||||
tabulate(c1=int)
|
tabulate(c1=int)
|
||||||
tabulate(c2=int)
|
tabulate(c2=int)
|
||||||
testvector()
|
testvector()
|
||||||
|
misbehavin()
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|
Loading…
Reference in New Issue