summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEthan Furman <ethan@stoneleaf.us>2015-09-18 04:49:12 (GMT)
committerEthan Furman <ethan@stoneleaf.us>2015-09-18 04:49:12 (GMT)
commit6db1fd5fb8b2287cd4713c95f0df451e375c8853 (patch)
tree9f44e78118615583ad7064d1a800adcef6c254c4
parentb1a3d9ae561b7b5a0bbbb47fad2f98448f1c7419 (diff)
downloadcpython-6db1fd5fb8b2287cd4713c95f0df451e375c8853.zip
cpython-6db1fd5fb8b2287cd4713c95f0df451e375c8853.tar.gz
cpython-6db1fd5fb8b2287cd4713c95f0df451e375c8853.tar.bz2
Close issue24840: Enum._value_ is queried for bool(); original patch by Mike Lundy
-rw-r--r--Lib/enum.py3
-rw-r--r--Lib/test/test_enum.py7
-rw-r--r--Misc/ACKS1
3 files changed, 11 insertions, 0 deletions
diff --git a/Lib/enum.py b/Lib/enum.py
index c28f345..616b2ea 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -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
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index 4b5d0d0..0f7b769 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -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)
diff --git a/Misc/ACKS b/Misc/ACKS
index e26be93..43b4c99 100644
--- 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