From: Ethan Furman Date: Mon, 23 May 2022 15:56:07 +0000 (-0700) Subject: gh93107: [Enum] fix missing variable in global_str (GH-93107) X-Git-Tag: v3.12.0a1~1456 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=046df59658c9f64a9f0fc909ed62e92c6c4dd668;p=thirdparty%2FPython%2Fcpython.git gh93107: [Enum] fix missing variable in global_str (GH-93107) --- diff --git a/Lib/enum.py b/Lib/enum.py index 1df38a6f7e5f..62fd5ce8fb9a 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 286d631d793e..44a3912630c3 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')