summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/output/test_operations5
-rw-r--r--Lib/test/test_operations.py25
2 files changed, 28 insertions, 2 deletions
diff --git a/Lib/test/output/test_operations b/Lib/test/output/test_operations
index 2accbd7..32eff3f 100644
--- a/Lib/test/output/test_operations
+++ b/Lib/test/output/test_operations
@@ -1,3 +1,6 @@
test_operations
3. Operations
-XXX Not yet implemented
+XXX Mostly not yet implemented
+3.1 Dictionary lookups succeed even if __cmp__() raises an exception
+raising error
+No exception passed through.
diff --git a/Lib/test/test_operations.py b/Lib/test/test_operations.py
index 1a75065..c14f480 100644
--- a/Lib/test/test_operations.py
+++ b/Lib/test/test_operations.py
@@ -2,4 +2,27 @@
print '3. Operations'
-print 'XXX Not yet implemented'
+print 'XXX Mostly not yet implemented'
+
+
+print '3.1 Dictionary lookups succeed even if __cmp__() raises an exception'
+
+# SourceForge bug #112558:
+# http://sourceforge.net/bugs/?func=detailbug&bug_id=112558&group_id=5470
+
+class BadDictKey:
+ def __hash__(self):
+ return hash(self.__class__)
+
+ def __cmp__(self, other):
+ if isinstance(other, self.__class__):
+ print "raising error"
+ raise RuntimeError, "gotcha"
+ return other
+
+d = {}
+x1 = BadDictKey()
+x2 = BadDictKey()
+d[x1] = 1
+d[x2] = 2
+print "No exception passed through."