Skip to content

Commit 046df59

Browse files
authored
gh93107: [Enum] fix missing variable in global_str (GH-93107)
1 parent b2694ab commit 046df59

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

Lib/enum.py

+1
Original file line numberDiff line numberDiff line change
@@ -1640,6 +1640,7 @@ def global_str(self):
16401640
use enum_name instead of class.enum_name
16411641
"""
16421642
if self._name_ is None:
1643+
cls_name = self.__class__.__name__
16431644
return "%s(%r)" % (cls_name, self._value_)
16441645
else:
16451646
return self._name_

Lib/test/test_enum.py

+11
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,12 @@ class HeadlightsC(IntFlag, boundary=enum.CONFORM):
189189
FOG_C = auto()
190190

191191

192+
@enum.global_enum
193+
class NoName(Flag):
194+
ONE = 1
195+
TWO = 2
196+
197+
192198
# tests
193199

194200
class _EnumTests:
@@ -616,6 +622,7 @@ class _PlainOutputTests:
616622
def test_str(self):
617623
TE = self.MainEnum
618624
if self.is_flag:
625+
self.assertEqual(str(TE(0)), "MainEnum(0)")
619626
self.assertEqual(str(TE.dupe), "MainEnum.dupe")
620627
self.assertEqual(str(self.dupe2), "MainEnum.first|third")
621628
else:
@@ -3242,6 +3249,10 @@ def test_global_repr_conform1(self):
32423249
'%(m)s.OFF_C' % {'m': SHORT_MODULE},
32433250
)
32443251

3252+
def test_global_enum_str(self):
3253+
self.assertEqual(str(NoName.ONE & NoName.TWO), 'NoName(0)')
3254+
self.assertEqual(str(NoName(0)), 'NoName(0)')
3255+
32453256
def test_format(self):
32463257
Perm = self.Perm
32473258
self.assertEqual(format(Perm.R, ''), '4')

0 commit comments

Comments
 (0)