summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/enum.py2
-rw-r--r--Lib/test/test_enum.py9
2 files changed, 10 insertions, 1 deletions
diff --git a/Lib/enum.py b/Lib/enum.py
index d14e91a..ba92766 100644
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -1186,6 +1186,8 @@ class Enum(metaclass=EnumType):
return None
def __repr__(self):
+ if not isinstance(self, Enum):
+ return repr(self)
v_repr = self.__class__._value_repr_ or repr
return "<%s.%s: %s>" % (self.__class__.__name__, self._name_, v_repr(self._value_))
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index a11bb44..bb163c4 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -11,7 +11,7 @@ import typing
import builtins as bltns
from collections import OrderedDict
from datetime import date
-from enum import Enum, IntEnum, StrEnum, EnumType, Flag, IntFlag, unique, auto
+from enum import Enum, EnumMeta, IntEnum, StrEnum, EnumType, Flag, IntFlag, unique, auto
from enum import STRICT, CONFORM, EJECT, KEEP, _simple_enum, _test_simple_enum
from enum import verify, UNIQUE, CONTINUOUS, NAMED_FLAGS, ReprEnum
from enum import member, nonmember, _iter_bits_lsb
@@ -644,6 +644,13 @@ class _EnumTests:
theother = auto()
self.assertEqual(repr(MySubEnum.that), "My name is that.")
+ def test_multiple_superclasses_repr(self):
+ class _EnumSuperClass(metaclass=EnumMeta):
+ pass
+ class E(_EnumSuperClass, Enum):
+ A = 1
+ self.assertEqual(repr(E.A), "<E.A: 1>")
+
def test_reversed_iteration_order(self):
self.assertEqual(
list(reversed(self.MainEnum)),