mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
Issue26748: Enum classes should evaluate as True
This commit is contained in:
commit
0fe7978c68
2 changed files with 19 additions and 0 deletions
|
@ -212,6 +212,12 @@ class EnumMeta(type):
|
||||||
enum_class.__new__ = Enum.__new__
|
enum_class.__new__ = Enum.__new__
|
||||||
return enum_class
|
return enum_class
|
||||||
|
|
||||||
|
def __bool__(self):
|
||||||
|
"""
|
||||||
|
classes/types should always be True.
|
||||||
|
"""
|
||||||
|
return True
|
||||||
|
|
||||||
def __call__(cls, value, names=None, *, module=None, qualname=None, type=None, start=1):
|
def __call__(cls, value, names=None, *, module=None, qualname=None, type=None, start=1):
|
||||||
"""Either returns an existing member, or creates a new enum class.
|
"""Either returns an existing member, or creates a new enum class.
|
||||||
|
|
||||||
|
|
|
@ -254,6 +254,19 @@ class TestEnum(unittest.TestCase):
|
||||||
with self.assertRaises(AttributeError):
|
with self.assertRaises(AttributeError):
|
||||||
del Season.SPRING.name
|
del Season.SPRING.name
|
||||||
|
|
||||||
|
def test_bool_of_class(self):
|
||||||
|
class Empty(Enum):
|
||||||
|
pass
|
||||||
|
self.assertTrue(bool(Empty))
|
||||||
|
|
||||||
|
def test_bool_of_member(self):
|
||||||
|
class Count(Enum):
|
||||||
|
zero = 0
|
||||||
|
one = 1
|
||||||
|
two = 2
|
||||||
|
for member in Count:
|
||||||
|
self.assertTrue(bool(member))
|
||||||
|
|
||||||
def test_invalid_names(self):
|
def test_invalid_names(self):
|
||||||
with self.assertRaises(ValueError):
|
with self.assertRaises(ValueError):
|
||||||
class Wrong(Enum):
|
class Wrong(Enum):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue