]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-116040: [Enum] fix test_empty_names test (GH-116508)
authorEthan Furman <ethan@stoneleaf.us>
Mon, 11 Mar 2024 20:42:01 +0000 (13:42 -0700)
committerGitHub <noreply@github.com>
Mon, 11 Mar 2024 20:42:01 +0000 (13:42 -0700)
* and fix _not_given usage

Lib/enum.py
Lib/test/test_enum.py

index 3499cb0b71547cf23588bba9c4e8a7c2f973edef..bcf7aae949ffdbe9e6c287937cf1f731b885f4db 100644 (file)
@@ -165,8 +165,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:
@@ -727,7 +725,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 0a44b61e9049ede33063f485075984777f2e2563..a83aca406cbd83ea398e8b0e4b51ef8cfb6b1ea5 100644 (file)
@@ -3431,17 +3431,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):