summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorEthan Furman <ethan@stoneleaf.us>2016-04-14 06:55:40 (GMT)
committerEthan Furman <ethan@stoneleaf.us>2016-04-14 06:55:40 (GMT)
commit0fe7978c68c5a1cccf00225c941767015c1ff11f (patch)
tree86aa4775ae62fd2c9e4388cc59e7a7c99130873c /Lib
parent21a663ea2829b6808dd6981904c393332d271f8e (diff)
parentde4e079d3dc3365ba66ff7bd2931d87b5dc5939d (diff)
downloadcpython-0fe7978c68c5a1cccf00225c941767015c1ff11f.zip
cpython-0fe7978c68c5a1cccf00225c941767015c1ff11f.tar.gz
cpython-0fe7978c68c5a1cccf00225c941767015c1ff11f.tar.bz2
Issue26748: Enum classes should evaluate as True
Diffstat (limited to 'Lib')
-rw-r--r--Lib/enum.py6
-rw-r--r--Lib/test/test_enum.py13
2 files changed, 19 insertions, 0 deletions
diff --git a/Lib/enum.py b/Lib/enum.py
index ac89d6b..476e3b3 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -212,6 +212,12 @@ class EnumMeta(type):
enum_class.__new__ = Enum.__new__
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):
"""Either returns an existing member, or creates a new enum class.
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index 7985948..e5e0ec0 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -254,6 +254,19 @@ class TestEnum(unittest.TestCase):
with self.assertRaises(AttributeError):
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):
with self.assertRaises(ValueError):
class Wrong(Enum):