]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.12] gh-116040: [Enum] fix test_empty_names test (GH-116508) (GH-116619)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Mon, 11 Mar 2024 22:16:22 +0000 (23:16 +0100)
committerGitHub <noreply@github.com>
Mon, 11 Mar 2024 22:16:22 +0000 (15:16 -0700)
* and fix _not_given usage

(cherry picked from commit 3c0dcef9808e34744096769b15bad4f1f97569f0)

Co-authored-by: Ethan Furman <ethan@stoneleaf.us>
Lib/enum.py
Lib/test/test_enum.py

index 110fbda4ddf5ad3bfe0cd7a8477164e4e097c107..50eca3f03d79f131d3ead410fce07bdb2e783e07 100644 (file)
@@ -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 @@ class EnumType(type):
                     )
         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,
index d5e9444bdcb07bf6f181fec2ff1aee945e8973e1..2fea9f983692b50f5b82d12f44e3fe540d915d19 100644 (file)
@@ -3334,17 +3334,13 @@ 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)
+        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):