summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_enum.py
diff options
context:
space:
mode:
authorNikita Sobolev <mail@sobolevn.me>2024-06-14 17:25:35 (GMT)
committerGitHub <noreply@github.com>2024-06-14 17:25:35 (GMT)
commit7fadfd82ebf6ea90b38cb3f2a046a51f8601a205 (patch)
treed07cf796d7121d8d0c1a1ed5f251d3bb63893ab6 /Lib/test/test_enum.py
parent7c38097add9cc24e9f68414cd3e5e1b6cbe38a17 (diff)
downloadcpython-7fadfd82ebf6ea90b38cb3f2a046a51f8601a205.zip
cpython-7fadfd82ebf6ea90b38cb3f2a046a51f8601a205.tar.gz
cpython-7fadfd82ebf6ea90b38cb3f2a046a51f8601a205.tar.bz2
gh-120361: Add `nonmember` test with enum flags inside to `test_enum` (GH-120364)
* gh-120361: Add `nonmember` test with enum flags inside to `test_enum`
Diffstat (limited to 'Lib/test/test_enum.py')
-rw-r--r--Lib/test/test_enum.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index 529dfc6..99fd16b 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -1495,6 +1495,27 @@ class TestSpecial(unittest.TestCase):
spam = nonmember(SpamEnumIsInner)
self.assertTrue(SpamEnum.spam is SpamEnumIsInner)
+ def test_using_members_as_nonmember(self):
+ class Example(Flag):
+ A = 1
+ B = 2
+ ALL = nonmember(A | B)
+
+ self.assertEqual(Example.A.value, 1)
+ self.assertEqual(Example.B.value, 2)
+ self.assertEqual(Example.ALL, 3)
+ self.assertIs(type(Example.ALL), int)
+
+ class Example(Flag):
+ A = auto()
+ B = auto()
+ ALL = nonmember(A | B)
+
+ self.assertEqual(Example.A.value, 1)
+ self.assertEqual(Example.B.value, 2)
+ self.assertEqual(Example.ALL, 3)
+ self.assertIs(type(Example.ALL), int)
+
def test_nested_classes_in_enum_with_member(self):
"""Support locally-defined nested classes."""
class Outer(Enum):