diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2009-11-28 16:12:28 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2009-11-28 16:12:28 (GMT) |
commit | 7b0d4a238f2a69747ed570f8bfb51fb31315eba9 (patch) | |
tree | 0e1ea6c39a6ce48f33b1358992f26d3e5ce1081a /Lib/test/test_traceback.py | |
parent | 1fc0d2b364b144e501615cf82e998beb87733607 (diff) | |
download | cpython-7b0d4a238f2a69747ed570f8bfb51fb31315eba9.zip cpython-7b0d4a238f2a69747ed570f8bfb51fb31315eba9.tar.gz cpython-7b0d4a238f2a69747ed570f8bfb51fb31315eba9.tar.bz2 |
Issue #4486: When an exception has an explicit cause, do not print its implicit context too.
Diffstat (limited to 'Lib/test/test_traceback.py')
-rw-r--r-- | Lib/test/test_traceback.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 2145710..17413db 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -253,6 +253,26 @@ class BaseExceptionReportingTests: self.check_zero_div(blocks[0]) self.assertTrue('inner_raise() # Marker' in blocks[2]) + def test_cause_and_context(self): + # When both a cause and a context are set, only the cause should be + # displayed and the context should be muted. + def inner_raise(): + try: + self.zero_div() + except ZeroDivisionError as _e: + e = _e + try: + xyzzy + except NameError: + raise KeyError from e + def outer_raise(): + inner_raise() # Marker + blocks = boundaries.split(self.get_report(outer_raise)) + self.assertEquals(len(blocks), 3) + self.assertEquals(blocks[1], cause_message) + self.check_zero_div(blocks[0]) + self.assert_('inner_raise() # Marker' in blocks[2]) + def test_cause_recursive(self): def inner_raise(): try: |