https://github.com/python/cpython/commit/8b3b5be934622670dc1670ab60b70c668004bb62
commit: 8b3b5be934622670dc1670ab60b70c668004bb62
branch: 3.12
author: Miss Islington (bot) <[email protected]>
committer: ethanfurman <[email protected]>
date: 2024-03-11T15:16:22-07:00
summary:

[3.12] gh-116040: [Enum] fix test_empty_names test (GH-116508) (GH-116619)

* and fix _not_given usage

(cherry picked from commit 3c0dcef9808e34744096769b15bad4f1f97569f0)

Co-authored-by: Ethan Furman <[email protected]>

files:
M Lib/enum.py
M Lib/test/test_enum.py

diff --git a/Lib/enum.py b/Lib/enum.py
index 110fbda4ddf5ad..50eca3f03d79f1 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -169,8 +169,6 @@ def _dedent(text):
 class _not_given:
     def __repr__(self):
         return('<not given>')
-    def __bool__(self):
-        return False
 _not_given = _not_given()
 
 class _auto_null:
@@ -765,7 +763,7 @@ def __call__(cls, value, names=_not_given, *values, 
module=None, qualname=None,
                     )
         return cls._create_(
                 class_name=value,
-                names=names or None,
+                names=None if names is _not_given else names,
                 module=module,
                 qualname=qualname,
                 type=type,
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index d5e9444bdcb07b..2fea9f983692b5 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -3334,17 +3334,13 @@ def test_no_members(self):
             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)
+        for nothing in '', [], {}:
+            for e_type in None, int:
+                empty_enum = Enum('empty_enum', nothing, type=e_type)
+                self.assertEqual(len(empty_enum), 0)
+                self.assertRaisesRegex(TypeError, 'has no members', 
empty_enum, 0)
+        self.assertRaisesRegex(TypeError, '.int. object is not iterable', 
Enum, 'bad_enum', names=0)
+        self.assertRaisesRegex(TypeError, '.int. object is not iterable', 
Enum, 'bad_enum', 0, type=int)
 
 
 class TestOrder(unittest.TestCase):

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to