mirror of
https://github.com/python/cpython.git
synced 2025-08-08 19:09:46 +00:00
[3.12] gh-115539: Allow enum.Flag to have None members (GH-115636) (GH-115694)
gh-115539: Allow enum.Flag to have None members (GH-115636)
(cherry picked from commit c2cb31bbe1
)
Co-authored-by: Jason Zhang <yurenzhang2017@gmail.com>
This commit is contained in:
parent
eb745733fe
commit
e4fd5d542a
2 changed files with 52 additions and 21 deletions
|
@ -1007,6 +1007,22 @@ class TestPlainEnumFunction(_EnumTests, _PlainOutputTests, unittest.TestCase):
|
|||
class TestPlainFlagClass(_EnumTests, _PlainOutputTests, _FlagTests, unittest.TestCase):
|
||||
enum_type = Flag
|
||||
|
||||
def test_none_member(self):
|
||||
class FlagWithNoneMember(Flag):
|
||||
A = 1
|
||||
E = None
|
||||
|
||||
self.assertEqual(FlagWithNoneMember.A.value, 1)
|
||||
self.assertIs(FlagWithNoneMember.E.value, None)
|
||||
with self.assertRaisesRegex(TypeError, r"'FlagWithNoneMember.E' cannot be combined with other flags with |"):
|
||||
FlagWithNoneMember.A | FlagWithNoneMember.E
|
||||
with self.assertRaisesRegex(TypeError, r"'FlagWithNoneMember.E' cannot be combined with other flags with &"):
|
||||
FlagWithNoneMember.E & FlagWithNoneMember.A
|
||||
with self.assertRaisesRegex(TypeError, r"'FlagWithNoneMember.E' cannot be combined with other flags with \^"):
|
||||
FlagWithNoneMember.A ^ FlagWithNoneMember.E
|
||||
with self.assertRaisesRegex(TypeError, r"'FlagWithNoneMember.E' cannot be inverted"):
|
||||
~FlagWithNoneMember.E
|
||||
|
||||
|
||||
class TestPlainFlagFunction(_EnumTests, _PlainOutputTests, _FlagTests, unittest.TestCase):
|
||||
enum_type = Flag
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue