Revert "bpo-38659: [Enum] add _simple_enum decorator (GH-25285)" (GH-… · python/cpython@503cdc7

@@ -8,7 +8,7 @@

88

import threading

99

from collections import OrderedDict

1010

from enum import Enum, IntEnum, StrEnum, EnumType, Flag, IntFlag, unique, auto

11-

from enum import STRICT, CONFORM, EJECT, KEEP, _simple_enum, _test_simple_enum

11+

from enum import STRICT, CONFORM, EJECT, KEEP

1212

from io import StringIO

1313

from pickle import dumps, loads, PicklingError, HIGHEST_PROTOCOL

1414

from test import support

@@ -2511,13 +2511,10 @@ class Bizarre(Flag, boundary=KEEP):

25112511

d = 6

25122512

#

25132513

self.assertRaisesRegex(ValueError, 'invalid value: 7', Iron, 7)

2514-

#

25152514

self.assertIs(Water(7), Water.ONE|Water.TWO)

25162515

self.assertIs(Water(~9), Water.TWO)

2517-

#

25182516

self.assertEqual(Space(7), 7)

25192517

self.assertTrue(type(Space(7)) is int)

2520-

#

25212518

self.assertEqual(list(Bizarre), [Bizarre.c])

25222519

self.assertIs(Bizarre(3), Bizarre.b)

25232520

self.assertIs(Bizarre(6), Bizarre.d)

@@ -3056,20 +3053,16 @@ class Space(IntFlag, boundary=EJECT):

30563053

EIGHT = 8

30573054

self.assertIs(Space._boundary_, EJECT)

30583055

#

3059-

#

30603056

class Bizarre(IntFlag, boundary=KEEP):

30613057

b = 3

30623058

c = 4

30633059

d = 6

30643060

#

30653061

self.assertRaisesRegex(ValueError, 'invalid value: 5', Iron, 5)

3066-

#

30673062

self.assertIs(Water(7), Water.ONE|Water.TWO)

30683063

self.assertIs(Water(~9), Water.TWO)

3069-

#

30703064

self.assertEqual(Space(7), 7)

30713065

self.assertTrue(type(Space(7)) is int)

3072-

#

30733066

self.assertEqual(list(Bizarre), [Bizarre.c])

30743067

self.assertIs(Bizarre(3), Bizarre.b)

30753068

self.assertIs(Bizarre(6), Bizarre.d)

@@ -3584,41 +3577,6 @@ def test_inspect_classify_class_attrs(self):

35843577

if failed:

35853578

self.fail("result does not equal expected, see print above")

358635793587-

def test_test_simple_enum(self):

3588-

@_simple_enum(Enum)

3589-

class SimpleColor:

3590-

RED = 1

3591-

GREEN = 2

3592-

BLUE = 3

3593-

class CheckedColor(Enum):

3594-

RED = 1

3595-

GREEN = 2

3596-

BLUE = 3

3597-

self.assertTrue(_test_simple_enum(CheckedColor, SimpleColor) is None)

3598-

SimpleColor.GREEN._value_ = 9

3599-

self.assertRaisesRegex(

3600-

TypeError, "enum mismatch",

3601-

_test_simple_enum, CheckedColor, SimpleColor,

3602-

)

3603-

class CheckedMissing(IntFlag, boundary=KEEP):

3604-

SIXTY_FOUR = 64

3605-

ONE_TWENTY_EIGHT = 128

3606-

TWENTY_FORTY_EIGHT = 2048

3607-

ALL = 2048 + 128 + 64 + 12

3608-

CM = CheckedMissing

3609-

self.assertEqual(list(CheckedMissing), [CM.SIXTY_FOUR, CM.ONE_TWENTY_EIGHT, CM.TWENTY_FORTY_EIGHT])

3610-

#

3611-

@_simple_enum(IntFlag, boundary=KEEP)

3612-

class Missing:

3613-

SIXTY_FOUR = 64

3614-

ONE_TWENTY_EIGHT = 128

3615-

TWENTY_FORTY_EIGHT = 2048

3616-

ALL = 2048 + 128 + 64 + 12

3617-

M = Missing

3618-

self.assertEqual(list(CheckedMissing), [M.SIXTY_FOUR, M.ONE_TWENTY_EIGHT, M.TWENTY_FORTY_EIGHT])

3619-

#

3620-

_test_simple_enum(CheckedMissing, Missing)

3621-3622358036233581

class MiscTestCase(unittest.TestCase):

36243582

def test__all__(self):

@@ -3634,13 +3592,6 @@ def test__all__(self):

36343592

CONVERT_TEST_NAME_E = 5

36353593

CONVERT_TEST_NAME_F = 5

363635943637-

CONVERT_STRING_TEST_NAME_D = 5

3638-

CONVERT_STRING_TEST_NAME_C = 5

3639-

CONVERT_STRING_TEST_NAME_B = 5

3640-

CONVERT_STRING_TEST_NAME_A = 5 # This one should sort first.

3641-

CONVERT_STRING_TEST_NAME_E = 5

3642-

CONVERT_STRING_TEST_NAME_F = 5

3643-36443595

class TestIntEnumConvert(unittest.TestCase):

36453596

def test_convert_value_lookup_priority(self):

36463597

test_type = enum.IntEnum._convert_(

@@ -3688,16 +3639,14 @@ def test_convert_raise(self):

36883639

filter=lambda x: x.startswith('CONVERT_TEST_'))

3689364036903641

def test_convert_repr_and_str(self):

3691-

# reset global constants, as previous tests could have converted the

3692-

# integer values to enums

36933642

module = ('test.test_enum', '__main__')[__name__=='__main__']

36943643

test_type = enum.IntEnum._convert_(

36953644

'UnittestConvert',

36963645

module,

3697-

filter=lambda x: x.startswith('CONVERT_STRING_TEST_'))

3698-

self.assertEqual(repr(test_type.CONVERT_STRING_TEST_NAME_A), '%s.CONVERT_STRING_TEST_NAME_A' % module)

3699-

self.assertEqual(str(test_type.CONVERT_STRING_TEST_NAME_A), 'CONVERT_STRING_TEST_NAME_A')

3700-

self.assertEqual(format(test_type.CONVERT_STRING_TEST_NAME_A), '5')

3646+

filter=lambda x: x.startswith('CONVERT_TEST_'))

3647+

self.assertEqual(repr(test_type.CONVERT_TEST_NAME_A), '%s.CONVERT_TEST_NAME_A' % module)

3648+

self.assertEqual(str(test_type.CONVERT_TEST_NAME_A), 'CONVERT_TEST_NAME_A')

3649+

self.assertEqual(format(test_type.CONVERT_TEST_NAME_A), '5')

3701365037023651

# global names for StrEnum._convert_ test

37033652

CONVERT_STR_TEST_2 = 'goodbye'