Skip to content

Commit 61ac223

Browse files
oscar-LTethanfurman
authored andcommitted
Improve Fix and add test case as requested
1 parent 3e8480c commit 61ac223

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

Lib/enum.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1214,7 +1214,8 @@ def _generate_next_value_(name, start, count, last_values):
12141214
count: the number of existing members
12151215
last_value: the last value assigned or None
12161216
"""
1217-
for last_value in sorted(last_values, reverse=True):
1217+
numerical_last_values = [x for x in last_values if isinstance(x, int) or isinstance(x, float)]
1218+
for last_value in sorted(numerical_last_values, reverse=True):
12181219
try:
12191220
return last_value + 1
12201221
except TypeError:

Lib/test/test_enum.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3991,6 +3991,18 @@ def _generate_next_value_(name, start, count, last):
39913991
self.assertEqual(Color.red.value, 'pathological case')
39923992
self.assertEqual(Color.blue.value, 'blue')
39933993

3994+
def test_auto_with_aliases(self):
3995+
class Color(Enum):
3996+
red = auto()
3997+
blue = auto()
3998+
oxford = blue
3999+
crimson = red
4000+
green = auto()
4001+
self.assertIs(Color.crimson, Color.red)
4002+
self.assertIs(Color.oxford, Color.blue)
4003+
self.assertIsNot(Color.green, Color.red)
4004+
self.assertIsNot(Color.green, Color.blue)
4005+
39944006
def test_duplicate_auto(self):
39954007
class Dupes(Enum):
39964008
first = primero = auto()

0 commit comments

Comments
 (0)