8000 bpo-39728: Fixed after review · python/cpython@72eb2c4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 72eb2c4

Browse files
author
Andrey Darascheka
committed
bpo-39728: Fixed after review
1 parent ca86aff commit 72eb2c4

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

Lib/enum.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -585,6 +585,7 @@ 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
588589
raise exc
589590

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

Lib/test/test_enum.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,10 +1778,18 @@ def _missing_(cls, item):
17781778
self.assertIs(Color('three'), Color.blue)
17791779
with self.assertRaises(ValueError):
17801780
Color(7)
1781-
with self.assertRaises(TypeError):
1781+
try:
17821782
Color('bad return')
1783-
with self.assertRaises(ZeroDivisionError):
1783+
except TypeError as exc:
1784+
self.assertTrue(isinstance(exc.__context__, ValueError))
1785+
else:
1786+
raise Exception('Exception not raised.')
1787+
try:
17841788
Color('error out')
1789+
except ZeroDivisionError as exc:
1790+
self.assertTrue(not exc.__context__)
1791+
else:
1792+
raise Exception('Exception not raised.')
17851793

17861794
def test_multiple_mixin(self):
17871795
class MaxMixin:

0 commit comments

Comments
 (0)
0