diff options
author | Benjamin Peterson <benjamin@python.org> | 2014-08-02 16:18:49 -0700 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2014-08-02 16:18:49 -0700 |
commit | 1dde0905af3bb226206095e32b43de26c7ade9df (patch) | |
tree | 39ee7e949456ae5f4197eccf9841d8cefe9c9576 | |
parent | 7ae2f4118e4f3a85506c1e105f0ccd10c4ca135e (diff) | |
download | six-1dde0905af3bb226206095e32b43de26c7ade9df.tar.gz |
instantiate the exception if the value is None (fixes #86)
-rw-r--r-- | CHANGES | 3 | ||||
-rw-r--r-- | six.py | 2 | ||||
-rw-r--r-- | test_six.py | 8 |
3 files changed, 13 insertions, 0 deletions
@@ -6,6 +6,9 @@ This file lists the changes in each six version. Development version ------------------- +- Issue #86: In reraise(), instantiate the exception if the second argument is + None. + - Pull request #45: Add six.moves.email_mime_nonmultipart. - Issue #81: Add six.urllib.request.splittag mapping. @@ -609,6 +609,8 @@ if PY3: def reraise(tp, value, tb=None): + if value is None: + value = tp() if value.__traceback__ is not tb: raise value.with_traceback(tb) raise value diff --git a/test_six.py b/test_six.py index a520a83..1536276 100644 --- a/test_six.py +++ b/test_six.py @@ -560,6 +560,14 @@ def test_reraise(): assert tp2 is Exception assert value2 is e assert get_next(tb3) is tb2 + try: + six.reraise(tp, None, tb) + except Exception: + tp2, value2, tb2 = sys.exc_info() + assert tp2 is Exception + assert value2 is not val + assert isinstance(value2, Exception) + assert tb is get_next(tb2) def test_print_(): |