Close issue24840: Enum._value_ is queried for bool(); original patch by Mike Lundy

This commit is contained in:
Ethan Furman 2015-09-17 21:49:12 -07:00
parent b1a3d9ae56
commit 6db1fd5fb8
3 changed files with 11 additions and 0 deletions

View 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

View 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)

View File

@ -877,6 +877,7 @@ Kang-Hao (Kenny) Lu
Lukas Lueg
Loren Luke
Fredrik Lundh
Mike Lundy
Zhongyue Luo
Mark Lutz
Taras Lyapun