]> granicus.if.org Git - python/commitdiff
Close issue24840: Enum._value_ is queried for bool(); original patch by Mike Lundy
authorEthan Furman <ethan@stoneleaf.us>
Fri, 18 Sep 2015 04:49:12 +0000 (21:49 -0700)
committerEthan Furman <ethan@stoneleaf.us>
Fri, 18 Sep 2015 04:49:12 +0000 (21:49 -0700)
Lib/enum.py
Lib/test/test_enum.py
Misc/ACKS

index c28f3452a75372a5a61c068e975ebd44ddd4540f..616b2eac15094c3615d60753cf1f4a0dedd3a1a3 100644 (file)
@@ -476,6 +476,9 @@ class Enum(metaclass=EnumMeta):
     def __str__(self):
         return "%s.%s" % (self.__class__.__name__, self._name_)
 
+    def __bool__(self):
+        return bool(self._value_)
+
     def __dir__(self):
         added_behavior = [
                 m
index 4b5d0d07bc09f1e7c6a2b570efd0d2a6dbcc7e6a..0f7b769b7afba69fd4cf07c4efbb90426446289b 100644 (file)
@@ -270,6 +270,13 @@ class TestEnum(unittest.TestCase):
             class Wrong(Enum):
                 _any_name_ = 9
 
+    def test_bool(self):
+        class Logic(Enum):
+            true = True
+            false = False
+        self.assertTrue(Logic.true)
+        self.assertFalse(Logic.false)
+
     def test_contains(self):
         Season = self.Season
         self.assertIn(Season.AUTUMN, Season)
index e26be932e3e6c726bb24eb443fa2860c47198a4c..43b4c99779de9709e198e4c8efa5057b63695b7e 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -877,6 +877,7 @@ Kang-Hao (Kenny) Lu
 Lukas Lueg
 Loren Luke
 Fredrik Lundh
+Mike Lundy
 Zhongyue Luo
 Mark Lutz
 Taras Lyapun