From: Nikita Sobolev Date: Fri, 7 Jan 2022 21:44:21 +0000 (+0300) Subject: bpo-46296: [Enum] add a test for missing `value` recovery (GH-30458) X-Git-Tag: v3.11.0a4~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=74d1663580d1914bd110c3ab7282451f5e2cd2b5;p=thirdparty%2FPython%2Fcpython.git bpo-46296: [Enum] add a test for missing `value` recovery (GH-30458) In `__set_name__` there is a check for the `_value_` attribute and an attempt to add it if missing; this adds a test to cover the case for simple enums with a custom `__new__` method. --- diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 51a31e5ebf80..2b3eac56865b 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -1022,6 +1022,16 @@ class TestEnum(unittest.TestCase): class Huh(MyStr, MyInt, Enum): One = 1 + def test_value_auto_assign(self): + class Some(Enum): + def __new__(cls, val): + return object.__new__(cls) + x = 1 + y = 2 + + self.assertEqual(Some.x.value, 1) + self.assertEqual(Some.y.value, 2) + def test_hash(self): Season = self.Season dates = {} diff --git a/Misc/NEWS.d/next/Tests/2022-01-08-00-00-38.bpo-46296.vqxgTm.rst b/Misc/NEWS.d/next/Tests/2022-01-08-00-00-38.bpo-46296.vqxgTm.rst new file mode 100644 index 000000000000..9e0d470e269c --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2022-01-08-00-00-38.bpo-46296.vqxgTm.rst @@ -0,0 +1,2 @@ +Add a test case for :mod:`enum` +with ``_use_args_ == True`` and ``_member_type_ == object``.