bpo-35899: Fix Enum handling of empty and weird strings (GH-11891)


Co-authored-by: Maxwell <maxwellpxt@gmail.com>
Co-authored-by: Stéphane Wirtel <stephane@wirtel.be>

https://bugs.python.org/issue35899
(cherry picked from commit 8b914d2767acba3a9e78f1dacdc2d61dbfd7e304)

Co-authored-by: Brennan D Baraban <34765317+bdbaraban@users.noreply.github.com>
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index fdc3dd9..29a429c 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -2738,6 +2738,23 @@
         self.assertEqual(256, len(seen), 'too many composite members created')
 
 
+class TestEmptyAndNonLatinStrings(unittest.TestCase):
+
+    def test_empty_string(self):
+        with self.assertRaises(ValueError):
+            empty_abc = Enum('empty_abc', ('', 'B', 'C'))
+
+    def test_non_latin_character_string(self):
+        greek_abc = Enum('greek_abc', ('\u03B1', 'B', 'C'))
+        item = getattr(greek_abc, '\u03B1')
+        self.assertEqual(item.value, 1)
+
+    def test_non_latin_number_string(self):
+        hebrew_123 = Enum('hebrew_123', ('\u05D0', '2', '3'))
+        item = getattr(hebrew_123, '\u05D0')
+        self.assertEqual(item.value, 1)
+
+
 class TestUnique(unittest.TestCase):
 
     def test_unique_clean(self):