diff options
author | Ethan Furman <ethan@stoneleaf.us> | 2015-09-18 04:49:12 (GMT) |
---|---|---|
committer | Ethan Furman <ethan@stoneleaf.us> | 2015-09-18 04:49:12 (GMT) |
commit | 6db1fd5fb8b2287cd4713c95f0df451e375c8853 (patch) | |
tree | 9f44e78118615583ad7064d1a800adcef6c254c4 | |
parent | b1a3d9ae561b7b5a0bbbb47fad2f98448f1c7419 (diff) | |
download | cpython-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.py | 3 | ||||
-rw-r--r-- | Lib/test/test_enum.py | 7 | ||||
-rw-r--r-- | Misc/ACKS | 1 |
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) @@ -877,6 +877,7 @@ Kang-Hao (Kenny) Lu Lukas Lueg Loren Luke Fredrik Lundh +Mike Lundy Zhongyue Luo Mark Lutz Taras Lyapun |