[Python-checkins] cpython (merge 3.4 -> default): Issue22506: merge from 3.4

ethan.furman python-checkins at python.org
Tue Oct 14 17:59:40 CEST 2014


https://hg.python.org/cpython/rev/424fbf011176
changeset: 93051:424fbf011176
parent: 93049:d9a3d23cf8f0
parent: 93050:cd2ede7f2ff5
user: Ethan Furman <ethan at stoneleaf.us>
date: Tue Oct 14 08:59:14 2014 -0700
summary:
 Issue22506: merge from 3.4
files:
 Lib/enum.py | 7 ++++++-
 Lib/test/test_enum.py | 12 ++++++++++++
 2 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/Lib/enum.py b/Lib/enum.py
--- a/Lib/enum.py
+++ b/Lib/enum.py
@@ -464,7 +464,12 @@
 return "%s.%s" % (self.__class__.__name__, self._name_)
 
 def __dir__(self):
- added_behavior = [m for m in self.__class__.__dict__ if m[0] != '_']
+ added_behavior = [
+ m
+ for cls in self.__class__.mro()
+ for m in cls.__dict__
+ if m[0] != '_'
+ ]
 return (['__class__', '__doc__', '__module__', 'name', 'value'] +
 added_behavior)
 
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -176,6 +176,18 @@
 set(['__class__', '__doc__', '__module__', 'name', 'value', 'wowser']),
 )
 
+ def test_dir_on_sub_with_behavior_on_super(self):
+ # see issue22506
+ class SuperEnum(Enum):
+ def invisible(self):
+ return "did you see me?"
+ class SubEnum(SuperEnum):
+ sample = 5
+ self.assertEqual(
+ set(dir(SubEnum.sample)),
+ set(['__class__', '__doc__', '__module__', 'name', 'value', 'invisible']),
+ )
+
 def test_enum_in_enum_out(self):
 Season = self.Season
 self.assertIs(Season(Season.WINTER), Season.WINTER)
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /