cpython: 39697dcd97e3 (original) (raw)
Mercurial > cpython
changeset 85127:39697dcd97e3
Issue 18693: Put custom __dir__ back in place. Will instead look at fixing `help()`.
Ethan Furman ethan@stoneleaf.us | |
---|---|
date | Mon, 12 Aug 2013 06:51:41 -0700 |
parents | 9e61563edb67 |
children | 2294594fbe6c |
files | Lib/enum.py Lib/test/test_enum.py |
diffstat | 2 files changed, 21 insertions(+), 0 deletions(-)[+] [-] Lib/enum.py 6 Lib/test/test_enum.py 15 |
line wrap: on
line diff
--- a/Lib/enum.py +++ b/Lib/enum.py @@ -223,6 +223,9 @@ class EnumMeta(type): def contains(cls, member): return isinstance(member, cls) and member.name in cls.member_map
+ @property def members(cls): """Returns a mapping of member name->value. @@ -430,6 +433,9 @@ class Enum(metaclass=EnumMeta): def str(self): return "%s.%s" % (self.class.name, self.name)
+ def eq(self, other): if type(other) is self.class: return self is other
--- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -67,6 +67,21 @@ class TestEnum(unittest.TestCase): WINTER = 4 self.Season = Season
- def test_dir_on_class(self):
Season = self.Season[](#l2.8)
self.assertEqual([](#l2.9)
set(dir(Season)),[](#l2.10)
set(['__class__', '__doc__', '__members__',[](#l2.11)
'SPRING', 'SUMMER', 'AUTUMN', 'WINTER']),[](#l2.12)
)[](#l2.13)
- def test_dir_on_item(self):
Season = self.Season[](#l2.16)
self.assertEqual([](#l2.17)
set(dir(Season.WINTER)),[](#l2.18)
set(['__class__', '__doc__', 'name', 'value']),[](#l2.19)
)[](#l2.20)
+ def test_enum_in_enum_out(self): Season = self.Season self.assertIs(Season(Season.WINTER), Season.WINTER)