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`
This commit is contained in:
Nikita Sobolev 2024-06-14 20:25:35 +03:00 committed by GitHub
parent 7c38097add
commit 7fadfd82eb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 1 deletions

View File

@ -527,7 +527,7 @@ Data Types
``Flag`` is the same as :class:`Enum`, but its members support the bitwise
operators ``&`` (*AND*), ``|`` (*OR*), ``^`` (*XOR*), and ``~`` (*INVERT*);
the results of those operators are members of the enumeration.
the results of those operations are (aliases of) members of the enumeration.
.. method:: __contains__(self, value)

View File

@ -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):