Index: Lib/test/test_index.py =================================================================== --- Lib/test/test_index.py (revision 79474) +++ Lib/test/test_index.py (working copy) @@ -49,6 +49,8 @@ self.assertEqual(-7L.__index__(), -7) self.assertEqual(self.o.__index__(), 4) self.assertEqual(self.n.__index__(), 5) + self.assertEqual(True.__index__(), 1) + self.assertEqual(False.__index__(), 0) def test_subclasses(self): r = range(10) Index: Lib/test/test_bool.py =================================================================== --- Lib/test/test_bool.py (revision 79474) +++ Lib/test/test_bool.py (working copy) @@ -44,6 +44,25 @@ self.assertIsNot(int(False), False) self.assertEqual(int(True), 1) self.assertIsNot(int(True), True) + + def test_float(self): + self.assertEqual(float(False), 0.0) + self.assertIsNot(float(False), False) + self.assertEqual(float(True), 1.0) + self.assertIsNot(float(True), True) + + def test_long(self): + self.assertEqual(int(False), 0L) + self.assertIsNot(int(False), False) + self.assertEqual(int(True), 1L) + self.assertIsNot(int(True), True) + + def test_decimal(self): + from decimal import Decimal + self.assertIs(bool(Decimal(0)), False) + self.assertIs(bool(Decimal(1)), True) + self.assertEqual(Decimal(True), Decimal(1)) + self.assertEqual(Decimal(False), Decimal(0)) def test_math(self): self.assertEqual(+False, 0) @@ -157,6 +176,12 @@ self.assertIs(bool(""), False) self.assertIs(bool(), False) + def test_format(self): + self.assertEqual("%d" % False, "0") + self.assertEqual("%d" % True, "1") + self.assertEqual("%x" % False, "0") + self.assertEqual("%x" % True, "1") + def test_hasattr(self): self.assertIs(hasattr([], "append"), True) self.assertIs(hasattr([], "wobble"), False) @@ -250,6 +275,12 @@ self.assertIs(f.closed, True) finally: os.remove(test_support.TESTFN) + + def test_types(self): + # types are always true. + for t in [bool, complex, dict, file, float, int, list, long, object, + set, str, tuple, type]: + self.assertIs(bool(t), True) def test_operator(self): import operator