diff options
author | Benjamin Peterson <benjamin@python.org> | 2014-10-29 20:54:24 -0400 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2014-10-29 20:54:24 -0400 |
commit | 7330876ca5a33ff17d30c430514e00a2650a51de (patch) | |
tree | 998168d25045fd0cefda921c2e09fe869f42288d /test_six.py | |
parent | 0d77f9165f69e5f46ce364439484157bb193ff11 (diff) | |
download | six-7330876ca5a33ff17d30c430514e00a2650a51de.tar.gz |
add raise_from (fixes #102)
Patch from Robert Collins.
Diffstat (limited to 'test_six.py')
-rw-r--r-- | test_six.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test_six.py b/test_six.py index 4163520..b0ccd8d 100644 --- a/test_six.py +++ b/test_six.py @@ -588,6 +588,27 @@ def test_reraise(): assert tb is get_next(tb2) +def test_raise_from(): + try: + try: + raise Exception("blah") + except Exception: + ctx = sys.exc_info()[1] + f = Exception("foo") + six.raise_from(f, None) + except Exception: + tp, val, tb = sys.exc_info() + if sys.version_info[:2] > (3, 0): + # We should have done a raise f from None equivalent. + assert val.__cause__ is None + assert val.__context__ is ctx + if sys.version_info[:2] >= (3, 3): + # And that should suppress the context on the exception. + assert val.__suppress_context__ + # For all versions the outer exception should have raised successfully. + assert str(val) == "foo" + + def test_print_(): save = sys.stdout out = sys.stdout = six.moves.StringIO() |