summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_enum.py
diff options
context:
space:
mode:
authorJason Zhang <yurenzhang2017@gmail.com>2024-02-19 22:36:11 (GMT)
committerGitHub <noreply@github.com>2024-02-19 22:36:11 (GMT)
commitc2cb31bbe1262213085c425bc853d6587c66cae9 (patch)
tree6c3f818a795cfe2ec1209a7b6525f875a3310d54 /Lib/test/test_enum.py
parent6cd18c75a41a74cab69ebef0b7def3e48421bdd1 (diff)
downloadcpython-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.py16
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