Mercurial > cpython-lru_cache-weakref
diff Lib/test/test_class.py @ 16005:ced8041eb4ea legacy-trunk
Add test that ensures hash() of objects defining __cmp__ or __eq__ but
not __hash__ raises TypeError.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 18 Jan 2001 23:47:15 +0000 |
| parents | 07f24261c6e6 |
| children | bae9abadee22 |
line wrap: on
line diff
--- a/Lib/test/test_class.py Thu Jan 18 23:46:31 2001 +0000 +++ b/Lib/test/test_class.py Thu Jan 18 23:47:15 2001 +0000 @@ -1,5 +1,6 @@ "Test the functionality of Python classes implementing operators." +from test_support import TestFailed testmeths = [ @@ -216,3 +217,25 @@ testme.spam testme.eggs = "spam, spam, spam and ham" del testme.cardinal + + +# Test correct errors from hash() on objects with comparisons but no __hash__ + +class C0: + pass + +hash(C0()) # This should work; the next two should raise TypeError + +class C1: + def __cmp__(self, other): return 0 + +try: hash(C1()) +except TypeError: pass +else: raise TestFailed, "hash(C1()) should raise an exception" + +class C2: + def __eq__(self, other): return 1 + +try: hash(C2()) +except TypeError: pass +else: raise TestFailed, "hash(C2()) should raise an exception"
