Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5de67b1

Browse files
committed
Issue26748: Enum classes should evaluate as True
1 parent b9869df commit 5de67b1

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

Lib/enum.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ def __new__(metacls, cls, bases, classdict):
193193
enum_class.__new__ = Enum.__new__
194194
return enum_class
195195

196+
def __bool__(self):
197+
"""
198+
classes/types should always be True.
199+
"""
200+
return True
201+
196202
def __call__(cls, value, names=None, *, module=None, qualname=None, type=None):
197203
"""Either returns an existing member, or creates a new enum class.
198204

Lib/test/test_enum.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,19 @@ def spam(cls):
257257
with self.assertRaises(AttributeError):
258258
del Season.SPRING.name
259259

260+
def test_bool_of_class(self):
261+
class Empty(Enum):
262+
pass
263+
self.assertTrue(bool(Empty))
264+
265+
def test_bool_of_member(self):
266+
class Count(Enum):
267+
zero = 0
268+
one = 1
269+
two = 2
270+
for member in Count:
271+
self.assertTrue(bool(member))
272+
260273
def test_invalid_names(self):
261274
with self.assertRaises(ValueError):
262275
class Wrong(Enum):

0 commit comments

Comments
 (0)