From 9710bd5deb67e59205c861191331697f7b61f16a Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 18 Jan 2001 15:55:59 +0000 Subject: Add test for misbehaving rich comparisons (always returning 0) -- these fall back to __cmp__. --- Lib/test/test_richcmp.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_richcmp.py b/Lib/test/test_richcmp.py index 9c05e98..83cb72b 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((ab) == 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() -- cgit v0.12