]> granicus.if.org Git - python/commitdiff
Add tests for __nonzero__() problems.
authorJeremy Hylton <jeremy@alum.mit.edu>
Fri, 27 Jun 2003 17:40:16 +0000 (17:40 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Fri, 27 Jun 2003 17:40:16 +0000 (17:40 +0000)
Lib/test/test_bool.py

index dd18d845f59689010de3c79b92ffcb22d0a7007b..f2a4322695215fcccd0c7209f3d4b519461071dd 100644 (file)
@@ -320,6 +320,27 @@ class BoolTest(unittest.TestCase):
         self.assertEqual(cPickle.dumps(True, True), "I01\n.")
         self.assertEqual(cPickle.dumps(False, True), "I00\n.")
 
+    def test_convert_to_bool(self):
+        # Verify that TypeError occurs when bad things are returned
+        # from __nonzero__().  This isn't really a bool test, but
+        # it's related.
+        check = lambda o: self.assertRaises(TypeError, bool, o)
+        class Foo(object):
+            def __nonzero__(self):
+                return self
+        check(Foo())
+        
+        class Bar(object):
+            def __nonzero__(self):
+                return "Yes"
+        check(Bar())
+        
+        class Baz(int):
+            def __nonzero__(self):
+                return self
+        check(Baz())
+        
+
 def test_main():
     test_support.run_unittest(BoolTest)