summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEthan Furman <ethan@stoneleaf.us>2022-05-23 15:56:07 (GMT)
committerGitHub <noreply@github.com>2022-05-23 15:56:07 (GMT)
commit046df59658c9f64a9f0fc909ed62e92c6c4dd668 (patch)
tree3aa963ec23a28488a995456b367441a29adbbdd5
parentb2694ab46997746eae7e913738623b39f6334473 (diff)
downloadcpython-046df59658c9f64a9f0fc909ed62e92c6c4dd668.zip
cpython-046df59658c9f64a9f0fc909ed62e92c6c4dd668.tar.gz
cpython-046df59658c9f64a9f0fc909ed62e92c6c4dd668.tar.bz2
gh93107: [Enum] fix missing variable in global_str (GH-93107)
-rw-r--r--Lib/enum.py1
-rw-r--r--Lib/test/test_enum.py11
2 files changed, 12 insertions, 0 deletions
diff --git a/Lib/enum.py b/Lib/enum.py
index 1df38a6..62fd5ce 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -1640,6 +1640,7 @@ def global_str(self):
use enum_name instead of class.enum_name
"""
if self._name_ is None:
+ cls_name = self.__class__.__name__
return "%s(%r)" % (cls_name, self._value_)
else:
return self._name_
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index 286d631..44a3912 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -189,6 +189,12 @@ class HeadlightsC(IntFlag, boundary=enum.CONFORM):
FOG_C = auto()
+@enum.global_enum
+class NoName(Flag):
+ ONE = 1
+ TWO = 2
+
+
# tests
class _EnumTests:
@@ -616,6 +622,7 @@ class _PlainOutputTests:
def test_str(self):
TE = self.MainEnum
if self.is_flag:
+ self.assertEqual(str(TE(0)), "MainEnum(0)")
self.assertEqual(str(TE.dupe), "MainEnum.dupe")
self.assertEqual(str(self.dupe2), "MainEnum.first|third")
else:
@@ -3242,6 +3249,10 @@ class OldTestIntFlag(unittest.TestCase):
'%(m)s.OFF_C' % {'m': SHORT_MODULE},
)
+ def test_global_enum_str(self):
+ self.assertEqual(str(NoName.ONE & NoName.TWO), 'NoName(0)')
+ self.assertEqual(str(NoName(0)), 'NoName(0)')
+
def test_format(self):
Perm = self.Perm
self.assertEqual(format(Perm.R, ''), '4')