]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Close issue23900: add default __doc__ to new enumerations that do not specify one.
authorEthan Furman <ethan@stoneleaf.us>
Sun, 12 Apr 2015 06:23:06 +0000 (23:23 -0700)
committerEthan Furman <ethan@stoneleaf.us>
Sun, 12 Apr 2015 06:23:06 +0000 (23:23 -0700)
Lib/enum.py
Lib/test/test_enum.py

index 1d9ebf0f94136c41846fef66b7a94d30ffe62387..c28f3452a75372a5a61c068e975ebd44ddd4540f 100644 (file)
@@ -106,6 +106,10 @@ class EnumMeta(type):
             raise ValueError('Invalid enum member name: {0}'.format(
                 ','.join(invalid_names)))
 
+        # create a default docstring if one has not been provided
+        if '__doc__' not in classdict:
+            classdict['__doc__'] = 'An enumeration.'
+
         # create our new Enum type
         enum_class = super().__new__(metacls, cls, bases, classdict)
         enum_class._member_names_ = []               # names in definition order
index 1e8c08065c1ab9073805133d17f0147c16031ec4..4b5d0d07bc09f1e7c6a2b570efd0d2a6dbcc7e6a 100644 (file)
@@ -1560,9 +1560,7 @@ expected_help_output_with_docs = """\
 Help on class Color in module %s:
 
 class Color(enum.Enum)
- |  Generic enumeration.
- |\x20\x20
- |  Derive from this class to define new enumerations.
+ |  An enumeration.
  |\x20\x20
  |  Method resolution order:
  |      Color
@@ -1626,6 +1624,8 @@ class Color(enum.Enum)
 
 class TestStdLib(unittest.TestCase):
 
+    maxDiff = None
+
     class Color(Enum):
         red = 1
         green = 2
@@ -1646,7 +1646,7 @@ class TestStdLib(unittest.TestCase):
     def test_inspect_getmembers(self):
         values = dict((
                 ('__class__', EnumMeta),
-                ('__doc__', None),
+                ('__doc__', 'An enumeration.'),
                 ('__members__', self.Color.__members__),
                 ('__module__', __name__),
                 ('blue', self.Color.blue),
@@ -1674,7 +1674,7 @@ class TestStdLib(unittest.TestCase):
                 Attribute(name='__class__', kind='data',
                     defining_class=object, object=EnumMeta),
                 Attribute(name='__doc__', kind='data',
-                    defining_class=self.Color, object=None),
+                    defining_class=self.Color, object='An enumeration.'),
                 Attribute(name='__members__', kind='property',
                     defining_class=EnumMeta, object=EnumMeta.__members__),
                 Attribute(name='__module__', kind='data',