diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/output/test_operations | 5 | ||||
-rw-r--r-- | Lib/test/test_operations.py | 25 |
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." |