diff options
Diffstat (limited to 'Lib/test/test_enum.py')
| -rw-r--r-- | Lib/test/test_enum.py | 27 | 
1 files changed, 25 insertions, 2 deletions
diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 956b8347b1..c4c458e6bf 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -660,12 +660,35 @@ class TestEnum(unittest.TestCase):          self.assertEqual(repr(MyEnum.A), '<MyEnum.A: 0x1>')          #          class SillyInt(HexInt): +            __qualname__ = 'SillyInt'              pass          class MyOtherEnum(SillyInt, enum.Enum): +            __qualname__ = 'MyOtherEnum'              D = 4              E = 5              F = 6          self.assertIs(MyOtherEnum._member_type_, SillyInt) +        globals()['SillyInt'] = SillyInt +        globals()['MyOtherEnum'] = MyOtherEnum +        test_pickle_dump_load(self.assertIs, MyOtherEnum.E) +        test_pickle_dump_load(self.assertIs, MyOtherEnum) +        # +        # This did not work in 3.9, but does now with pickling by name +        class UnBrokenInt(int): +            __qualname__ = 'UnBrokenInt' +            def __new__(cls, value): +                return int.__new__(cls, value) +        class MyUnBrokenEnum(UnBrokenInt, Enum): +            __qualname__ = 'MyUnBrokenEnum' +            G = 7 +            H = 8 +            I = 9 +        self.assertIs(MyUnBrokenEnum._member_type_, UnBrokenInt) +        self.assertIs(MyUnBrokenEnum(7), MyUnBrokenEnum.G) +        globals()['UnBrokenInt'] = UnBrokenInt +        globals()['MyUnBrokenEnum'] = MyUnBrokenEnum +        test_pickle_dump_load(self.assertIs, MyUnBrokenEnum.I) +        test_pickle_dump_load(self.assertIs, MyUnBrokenEnum)      def test_too_many_data_types(self):          with self.assertRaisesRegex(TypeError, 'too many data types'): @@ -3591,7 +3614,7 @@ class TestVerify(unittest.TestCase):          self.assertEqual(Bizarre.d.value, 6)          with self.assertRaisesRegex(                  ValueError, -                "invalid Flag 'Bizarre': aliases b and d are missing combined values of 0x3 .use `enum.show_flag_values.value.` for details.", +                "invalid Flag 'Bizarre': aliases b and d are missing combined values of 0x3 .use enum.show_flag_values.value. for details.",              ):              @verify(NAMED_FLAGS)              class Bizarre(Flag): @@ -3610,7 +3633,7 @@ class TestVerify(unittest.TestCase):          self.assertEqual(Bizarre.d.value, 6)          with self.assertRaisesRegex(                  ValueError, -                "invalid Flag 'Bizarre': alias d is missing value 0x2 .use `enum.show_flag_values.value.` for details.", +                "invalid Flag 'Bizarre': alias d is missing value 0x2 .use enum.show_flag_values.value. for details.",              ):              @verify(NAMED_FLAGS)              class Bizarre(IntFlag):  | 
