diff options
| -rw-r--r-- | Lib/test/test_richcmp.py | 24 | 
1 files changed, 23 insertions, 1 deletions
diff --git a/Lib/test/test_richcmp.py b/Lib/test/test_richcmp.py index 9c05e98500..83cb72b41b 100644 --- a/Lib/test/test_richcmp.py +++ b/Lib/test/test_richcmp.py @@ -1,6 +1,6 @@  # Tests for rich comparisons -from test_support import TestFailed +from test_support import TestFailed, verify  class Number: @@ -167,11 +167,33 @@ def tabulate(c1=Number, c2=Number):      print      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():      basic()      tabulate()      tabulate(c1=int)      tabulate(c2=int)      testvector() +    misbehavin()  main()  | 
