diff options
author | Ethan Furman <ethan@stoneleaf.us> | 2022-05-23 15:56:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-23 15:56:07 (GMT) |
commit | 046df59658c9f64a9f0fc909ed62e92c6c4dd668 (patch) | |
tree | 3aa963ec23a28488a995456b367441a29adbbdd5 | |
parent | b2694ab46997746eae7e913738623b39f6334473 (diff) | |
download | cpython-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.py | 1 | ||||
-rw-r--r-- | Lib/test/test_enum.py | 11 |
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') |