Skip to content

Commit da40fa3

Browse files
[3.13] gh-120361: Add nonmember test with enum flags inside to test_enum (GH-120364) (#120511)
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` (cherry picked from commit 7fadfd8) Co-authored-by: Nikita Sobolev <[email protected]>
1 parent 6e3e112 commit da40fa3

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

Doc/library/enum.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ Data Types
527527

528528
``Flag`` is the same as :class:`Enum`, but its members support the bitwise
529529
operators ``&`` (*AND*), ``|`` (*OR*), ``^`` (*XOR*), and ``~`` (*INVERT*);
530-
the results of those operators are members of the enumeration.
530+
the results of those operations are (aliases of) members of the enumeration.
531531

532532
.. method:: __contains__(self, value)
533533

Lib/test/test_enum.py

+21
Original file line numberDiff line numberDiff line change
@@ -1495,6 +1495,27 @@ class SpamEnum(Enum):
14951495
spam = nonmember(SpamEnumIsInner)
14961496
self.assertTrue(SpamEnum.spam is SpamEnumIsInner)
14971497

1498+
def test_using_members_as_nonmember(self):
1499+
class Example(Flag):
1500+
A = 1
1501+
B = 2
1502+
ALL = nonmember(A | B)
1503+
1504+
self.assertEqual(Example.A.value, 1)
1505+
self.assertEqual(Example.B.value, 2)
1506+
self.assertEqual(Example.ALL, 3)
1507+
self.assertIs(type(Example.ALL), int)
1508+
1509+
class Example(Flag):
1510+
A = auto()
1511+
B = auto()
1512+
ALL = nonmember(A | B)
1513+
1514+
self.assertEqual(Example.A.value, 1)
1515+
self.assertEqual(Example.B.value, 2)
1516+
self.assertEqual(Example.ALL, 3)
1517+
self.assertIs(type(Example.ALL), int)
1518+
14981519
def test_nested_classes_in_enum_with_member(self):
14991520
"""Support locally-defined nested classes."""
15001521
class Outer(Enum):

0 commit comments

Comments
 (0)