summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_enum.py
diff options
context:
space:
mode:
authorEthan Furman <ethan@stoneleaf.us>2024-03-07 21:30:26 (GMT)
committerGitHub <noreply@github.com>2024-03-07 21:30:26 (GMT)
commit13ffd4bd9f529b6a5fe33741fbd57f14b4b80137 (patch)
tree78bdbc78cfc78e8fb584db32d0c082ed68a9a721 /Lib/test/test_enum.py
parentb2d74cdbcd0b47bc938200969bb31e5b37dc11e1 (diff)
downloadcpython-13ffd4bd9f529b6a5fe33741fbd57f14b4b80137.zip
cpython-13ffd4bd9f529b6a5fe33741fbd57f14b4b80137.tar.gz
cpython-13ffd4bd9f529b6a5fe33741fbd57f14b4b80137.tar.bz2
gh-116040: [Enum] fix by-value calls when second value is falsey; e.g. Cardinal(1, 0) (GH-116072)
Diffstat (limited to 'Lib/test/test_enum.py')
-rw-r--r--Lib/test/test_enum.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index 27f8bba..0a44b61 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -3409,6 +3409,15 @@ class TestSpecial(unittest.TestCase):
self.assertIs(Types(2), Types.NetList)
self.assertIs(Types('nl'), Types.NetList)
+ def test_second_tuple_item_is_falsey(self):
+ class Cardinal(Enum):
+ RIGHT = (1, 0)
+ UP = (0, 1)
+ LEFT = (-1, 0)
+ DOWN = (0, -1)
+ self.assertIs(Cardinal(1, 0), Cardinal.RIGHT)
+ self.assertIs(Cardinal(-1, 0), Cardinal.LEFT)
+
def test_no_members(self):
with self.assertRaisesRegex(
TypeError,
@@ -3421,6 +3430,20 @@ class TestSpecial(unittest.TestCase):
):
Flag(7)
+ def test_empty_names(self):
+ for nothing, e_type in (
+ ('', None),
+ ('', int),
+ ([], None),
+ ([], int),
+ ({}, None),
+ ({}, int),
+ ):
+ empty_enum = Enum('empty_enum', nothing, type=e_type)
+ self.assertEqual(len(empty_enum), 0)
+ self.assertRaises(TypeError, 'has no members', empty_enum, 0)
+
+
class TestOrder(unittest.TestCase):
"test usage of the `_order_` attribute"