From d7c4f2ed2847c1472c0e60f20e25db20e60dc7d7 Mon Sep 17 00:00:00 2001 From: Benjamin Peterson Date: Wed, 29 Oct 2014 20:54:24 -0400 Subject: add raise_from (fixes #102) Patch from Robert Collins. --- test_six.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'test_six.py') 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() -- cgit v1.2.1