mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
issue26981: add _order_ compatibility shim to enum.Enum
This commit is contained in:
parent
3e45875578
commit
e8e61277ff
4 changed files with 100 additions and 3 deletions
|
@ -1571,6 +1571,68 @@ class TestEnum(unittest.TestCase):
|
|||
self.assertEqual(LabelledList(1), LabelledList.unprocessed)
|
||||
|
||||
|
||||
class TestOrder(unittest.TestCase):
|
||||
|
||||
def test_same_members(self):
|
||||
class Color(Enum):
|
||||
_order_ = 'red green blue'
|
||||
red = 1
|
||||
green = 2
|
||||
blue = 3
|
||||
|
||||
def test_same_members_with_aliases(self):
|
||||
class Color(Enum):
|
||||
_order_ = 'red green blue'
|
||||
red = 1
|
||||
green = 2
|
||||
blue = 3
|
||||
verde = green
|
||||
|
||||
def test_same_members_wrong_order(self):
|
||||
with self.assertRaisesRegex(TypeError, 'member order does not match _order_'):
|
||||
class Color(Enum):
|
||||
_order_ = 'red green blue'
|
||||
red = 1
|
||||
blue = 3
|
||||
green = 2
|
||||
|
||||
def test_order_has_extra_members(self):
|
||||
with self.assertRaisesRegex(TypeError, 'member order does not match _order_'):
|
||||
class Color(Enum):
|
||||
_order_ = 'red green blue purple'
|
||||
red = 1
|
||||
green = 2
|
||||
blue = 3
|
||||
|
||||
def test_order_has_extra_members_with_aliases(self):
|
||||
with self.assertRaisesRegex(TypeError, 'member order does not match _order_'):
|
||||
class Color(Enum):
|
||||
_order_ = 'red green blue purple'
|
||||
red = 1
|
||||
green = 2
|
||||
blue = 3
|
||||
verde = green
|
||||
|
||||
def test_enum_has_extra_members(self):
|
||||
with self.assertRaisesRegex(TypeError, 'member order does not match _order_'):
|
||||
class Color(Enum):
|
||||
_order_ = 'red green blue'
|
||||
red = 1
|
||||
green = 2
|
||||
blue = 3
|
||||
purple = 4
|
||||
|
||||
def test_enum_has_extra_members_with_aliases(self):
|
||||
with self.assertRaisesRegex(TypeError, 'member order does not match _order_'):
|
||||
class Color(Enum):
|
||||
_order_ = 'red green blue'
|
||||
red = 1
|
||||
green = 2
|
||||
blue = 3
|
||||
purple = 4
|
||||
verde = green
|
||||
|
||||
|
||||
class TestUnique(unittest.TestCase):
|
||||
|
||||
def test_unique_clean(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue