8000 bpo-39728: enum with invalid value results in ValueError twice · python/cpython@ca86aff · GitHub
[go: up one dir, main page]

Skip to content

Commit ca86aff

Browse files
author
Andrey Darascheka
committed
bpo-39728: enum with invalid value results in ValueError twice
1 parent d15d1cc commit ca86aff

File tree

3 files changed

+5
-12
lines changed

3 files changed

+5
-12
lines changed

Lib/enum.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,6 @@ def __new__(cls, value):
585585
'error in %s._missing_: returned %r instead of None or a valid member'
586586
% (cls.__name__, result)
587587
)
588-
exc.__context__ = ve_exc
589588
raise exc
590589

591590
def _generate_next_value_(name, start, count, last_values):

Lib/test/test_enum.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1776,19 +1776,12 @@ def _missing_(cls, item):
17761776
# trigger not found
17771777
return None
17781778
self.assertIs(Color('three'), Color.blue)
1779-
self.assertRaises(ValueError, Color, 7)
1780-
try:
1779+
with self.assertRaises(ValueError):
1780+
Color(7)
1781+
with self.assertRaises(TypeError):
17811782
Color('bad return')
1782-
except TypeError as exc:
1783-
self.assertTrue(isinstance(exc.__context__, ValueError))
1784-
else:
1785-
raise Exception('Exception not raised.')
1786-
try:
1783+
with self.assertRaises(ZeroDivisionError):
17871784
Color('error out')
1788-
except ZeroDivisionError as exc:
1789-
self.assertTrue(isinstance(exc.__context__, ValueError))
1790-
else:
1791-
raise Exception('Exception not raised.')
17921785

17931786
def test_multiple_mixin(self):
17941787
class MaxMixin:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Instantiating enum with invalid value results in ValueError twice

0 commit comments

Comments
 (0)
0