◐ Shell
clean mode source ↗

bpo-38659: Revert "[Enum] add _simple_enum decorator (GH-25497)" by pablogsal · Pull Request #25560 · python/cpython

Expand Up @@ -8,7 +8,7 @@ import threading from collections import OrderedDict from enum import Enum, IntEnum, StrEnum, EnumType, Flag, IntFlag, unique, auto from enum import STRICT, CONFORM, EJECT, KEEP, _simple_enum, _test_simple_enum from enum import STRICT, CONFORM, EJECT, KEEP from io import StringIO from pickle import dumps, loads, PicklingError, HIGHEST_PROTOCOL from test import support Expand Down Expand Up @@ -2511,13 +2511,10 @@ class Bizarre(Flag, boundary=KEEP): d = 6 # self.assertRaisesRegex(ValueError, 'invalid value: 7', Iron, 7) # self.assertIs(Water(7), Water.ONE|Water.TWO) self.assertIs(Water(~9), Water.TWO) # self.assertEqual(Space(7), 7) self.assertTrue(type(Space(7)) is int) # self.assertEqual(list(Bizarre), [Bizarre.c]) self.assertIs(Bizarre(3), Bizarre.b) self.assertIs(Bizarre(6), Bizarre.d) Expand Down Expand Up @@ -3056,20 +3053,16 @@ class Space(IntFlag, boundary=EJECT): EIGHT = 8 self.assertIs(Space._boundary_, EJECT) # # class Bizarre(IntFlag, boundary=KEEP): b = 3 c = 4 d = 6 # self.assertRaisesRegex(ValueError, 'invalid value: 5', Iron, 5) # self.assertIs(Water(7), Water.ONE|Water.TWO) self.assertIs(Water(~9), Water.TWO) # self.assertEqual(Space(7), 7) self.assertTrue(type(Space(7)) is int) # self.assertEqual(list(Bizarre), [Bizarre.c]) self.assertIs(Bizarre(3), Bizarre.b) self.assertIs(Bizarre(6), Bizarre.d) Expand Down Expand Up @@ -3584,41 +3577,6 @@ def test_inspect_classify_class_attrs(self): if failed: self.fail("result does not equal expected, see print above")
def test_test_simple_enum(self): @_simple_enum(Enum) class SimpleColor: RED = 1 GREEN = 2 BLUE = 3 class CheckedColor(Enum): RED = 1 GREEN = 2 BLUE = 3 self.assertTrue(_test_simple_enum(CheckedColor, SimpleColor) is None) SimpleColor.GREEN._value_ = 9 self.assertRaisesRegex( TypeError, "enum mismatch", _test_simple_enum, CheckedColor, SimpleColor, ) class CheckedMissing(IntFlag, boundary=KEEP): SIXTY_FOUR = 64 ONE_TWENTY_EIGHT = 128 TWENTY_FORTY_EIGHT = 2048 ALL = 2048 + 128 + 64 + 12 CM = CheckedMissing self.assertEqual(list(CheckedMissing), [CM.SIXTY_FOUR, CM.ONE_TWENTY_EIGHT, CM.TWENTY_FORTY_EIGHT]) # @_simple_enum(IntFlag, boundary=KEEP) class Missing: SIXTY_FOUR = 64 ONE_TWENTY_EIGHT = 128 TWENTY_FORTY_EIGHT = 2048 ALL = 2048 + 128 + 64 + 12 M = Missing self.assertEqual(list(CheckedMissing), [M.SIXTY_FOUR, M.ONE_TWENTY_EIGHT, M.TWENTY_FORTY_EIGHT]) # _test_simple_enum(CheckedMissing, Missing)

class MiscTestCase(unittest.TestCase): def test__all__(self): Expand All @@ -3634,13 +3592,6 @@ def test__all__(self): CONVERT_TEST_NAME_E = 5 CONVERT_TEST_NAME_F = 5
CONVERT_STRING_TEST_NAME_D = 5 CONVERT_STRING_TEST_NAME_C = 5 CONVERT_STRING_TEST_NAME_B = 5 CONVERT_STRING_TEST_NAME_A = 5 # This one should sort first. CONVERT_STRING_TEST_NAME_E = 5 CONVERT_STRING_TEST_NAME_F = 5
class TestIntEnumConvert(unittest.TestCase): def setUp(self): # Reset the module-level test variables to their original integer Expand Down Expand Up @@ -3700,10 +3651,10 @@ def test_convert_repr_and_str(self): test_type = enum.IntEnum._convert_( 'UnittestConvert', module, filter=lambda x: x.startswith('CONVERT_STRING_TEST_')) self.assertEqual(repr(test_type.CONVERT_STRING_TEST_NAME_A), '%s.CONVERT_STRING_TEST_NAME_A' % module) self.assertEqual(str(test_type.CONVERT_STRING_TEST_NAME_A), 'CONVERT_STRING_TEST_NAME_A') self.assertEqual(format(test_type.CONVERT_STRING_TEST_NAME_A), '5') filter=lambda x: x.startswith('CONVERT_TEST_')) self.assertEqual(repr(test_type.CONVERT_TEST_NAME_A), '%s.CONVERT_TEST_NAME_A' % module) self.assertEqual(str(test_type.CONVERT_TEST_NAME_A), 'CONVERT_TEST_NAME_A') self.assertEqual(format(test_type.CONVERT_TEST_NAME_A), '5')
# global names for StrEnum._convert_ test CONVERT_STR_TEST_2 = 'goodbye' Expand Down