]> granicus.if.org Git - python/commitdiff
removed Enum.__eq__ as it added nothing
authorEthan Furman <ethan@stoneleaf.us>
Wed, 13 Nov 2013 22:25:45 +0000 (14:25 -0800)
committerEthan Furman <ethan@stoneleaf.us>
Wed, 13 Nov 2013 22:25:45 +0000 (14:25 -0800)
Lib/enum.py
Lib/test/test_enum.py

index 7ca85035deb25a3dae56e0434cb0f006626b27bf..7d58f8d17a6ed39dc1982a2811a81d3ab843fb39 100644 (file)
@@ -447,11 +447,6 @@ class Enum(metaclass=EnumMeta):
         return (['__class__', '__doc__', '__module__', 'name', 'value'] +
                 added_behavior)
 
-    def __eq__(self, other):
-        if type(other) is self.__class__:
-            return self is other
-        return NotImplemented
-
     def __format__(self, format_spec):
         # mixed-in Enums should use the mixed-in type's __format__, otherwise
         # we can get strange results with the Enum name showing up instead of
index d5a31b872c5ca6d8468d5bc814d865f7afd7bea6..03f0e5d5cda5acac3aee15ab6a59f4ee8b474427 100644 (file)
@@ -1030,6 +1030,15 @@ class TestEnum(unittest.TestCase):
         self.assertEqual(list(Color), [Color.red, Color.green, Color.blue])
         self.assertEqual(list(map(int, Color)), [1, 2, 3])
 
+    def test_equality(self):
+        class AlwaysEqual:
+            def __eq__(self, other):
+                return True
+        class OrdinaryEnum(Enum):
+            a = 1
+        self.assertEqual(AlwaysEqual(), OrdinaryEnum.a)
+        self.assertEqual(OrdinaryEnum.a, AlwaysEqual())
+
     def test_ordered_mixin(self):
         class OrderedEnum(Enum):
             def __ge__(self, other):
@@ -1058,6 +1067,8 @@ class TestEnum(unittest.TestCase):
         self.assertLessEqual(Grade.F, Grade.C)
         self.assertLess(Grade.D, Grade.A)
         self.assertGreaterEqual(Grade.B, Grade.B)
+        self.assertEqual(Grade.B, Grade.B)
+        self.assertNotEqual(Grade.C, Grade.D)
 
     def test_extending2(self):
         class Shade(Enum):