mirror of
https://github.com/python/cpython.git
synced 2025-10-21 22:22:48 +00:00
gh-115539: Allow enum.Flag to have None members (GH-115636)
This commit is contained in:
parent
6cd18c75a4
commit
c2cb31bbe1
2 changed files with 52 additions and 21 deletions
|
@ -1048,6 +1048,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