diff options
author | Jason Zhang <yurenzhang2017@gmail.com> | 2024-02-19 22:36:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-19 22:36:11 (GMT) |
commit | c2cb31bbe1262213085c425bc853d6587c66cae9 (patch) | |
tree | 6c3f818a795cfe2ec1209a7b6525f875a3310d54 /Lib/test/test_enum.py | |
parent | 6cd18c75a41a74cab69ebef0b7def3e48421bdd1 (diff) | |
download | cpython-c2cb31bbe1262213085c425bc853d6587c66cae9.zip cpython-c2cb31bbe1262213085c425bc853d6587c66cae9.tar.gz cpython-c2cb31bbe1262213085c425bc853d6587c66cae9.tar.bz2 |
gh-115539: Allow enum.Flag to have None members (GH-115636)
Diffstat (limited to 'Lib/test/test_enum.py')
-rw-r--r-- | Lib/test/test_enum.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 61060f3..cf3e042 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -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 |