summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_enum.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2022-06-26 11:24:04 (GMT)
committerGitHub <noreply@github.com>2022-06-26 11:24:04 (GMT)
commit1b27ec5ac62606b6b5da34dfb794d5975949f864 (patch)
tree2c4af8fbc22c13479b3788d6d6eaec4c9f30a422 /Lib/test/test_enum.py
parent5ce819f3c50a30074c843d57c3488a911e4fa578 (diff)
downloadcpython-1b27ec5ac62606b6b5da34dfb794d5975949f864.zip
cpython-1b27ec5ac62606b6b5da34dfb794d5975949f864.tar.gz
cpython-1b27ec5ac62606b6b5da34dfb794d5975949f864.tar.bz2
[3.11] gh-93820: Pickle enum.Flag by name (GH-93891). (GH-94288)
(cherry picked from commit 536985814a7116f14c9bc90aa1b3e3d36d5b2367) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Lib/test/test_enum.py')
-rw-r--r--Lib/test/test_enum.py44
1 files changed, 42 insertions, 2 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py
index c510f1b..ac5c52b 100644
--- a/Lib/test/test_enum.py
+++ b/Lib/test/test_enum.py
@@ -66,10 +66,27 @@ try:
class FlagStooges(Flag):
LARRY = 1
CURLY = 2
- MOE = 3
+ MOE = 4
except Exception as exc:
FlagStooges = exc
+class FlagStoogesWithZero(Flag):
+ NOFLAG = 0
+ LARRY = 1
+ CURLY = 2
+ MOE = 4
+
+class IntFlagStooges(IntFlag):
+ LARRY = 1
+ CURLY = 2
+ MOE = 4
+
+class IntFlagStoogesWithZero(IntFlag):
+ NOFLAG = 0
+ LARRY = 1
+ CURLY = 2
+ MOE = 4
+
# for pickle test and subclass tests
class Name(StrEnum):
BDFL = 'Guido van Rossum'
@@ -2964,9 +2981,32 @@ class OldTestFlag(unittest.TestCase):
def test_pickle(self):
if isinstance(FlagStooges, Exception):
raise FlagStooges
- test_pickle_dump_load(self.assertIs, FlagStooges.CURLY|FlagStooges.MOE)
+ test_pickle_dump_load(self.assertIs, FlagStooges.CURLY)
+ test_pickle_dump_load(self.assertEqual,
+ FlagStooges.CURLY|FlagStooges.MOE)
+ test_pickle_dump_load(self.assertEqual,
+ FlagStooges.CURLY&~FlagStooges.CURLY)
test_pickle_dump_load(self.assertIs, FlagStooges)
+ test_pickle_dump_load(self.assertIs, FlagStoogesWithZero.CURLY)
+ test_pickle_dump_load(self.assertEqual,
+ FlagStoogesWithZero.CURLY|FlagStoogesWithZero.MOE)
+ test_pickle_dump_load(self.assertIs, FlagStoogesWithZero.NOFLAG)
+
+ test_pickle_dump_load(self.assertIs, IntFlagStooges.CURLY)
+ test_pickle_dump_load(self.assertEqual,
+ IntFlagStooges.CURLY|IntFlagStooges.MOE)
+ test_pickle_dump_load(self.assertEqual,
+ IntFlagStooges.CURLY|IntFlagStooges.MOE|0x30)
+ test_pickle_dump_load(self.assertEqual, IntFlagStooges(0))
+ test_pickle_dump_load(self.assertEqual, IntFlagStooges(0x30))
+ test_pickle_dump_load(self.assertIs, IntFlagStooges)
+
+ test_pickle_dump_load(self.assertIs, IntFlagStoogesWithZero.CURLY)
+ test_pickle_dump_load(self.assertEqual,
+ IntFlagStoogesWithZero.CURLY|IntFlagStoogesWithZero.MOE)
+ test_pickle_dump_load(self.assertIs, IntFlagStoogesWithZero.NOFLAG)
+
@unittest.skipIf(
python_version >= (3, 12),
'__contains__ now returns True/False for all inputs',